Wenn ich das ausführe
regex='^[-a-z0-9]+$'
string='abcd1--'
if [[ $string =~ $regex ] -a ![ grep - "--" ]]
then
echo "valid"
else
echo "not valid"
fi
bekomme ich
~$ sh t.sh
t.sh: Zeile 3: Syntaxfehler im bedingten Ausdruck
t.sh: Zeile 3: Syntaxfehler in der Nähe von `]'
t.sh: Zeile 3: `if [[ $string =~ $regex ] -a [ grep - "--" ]]'
~$
Es sollte not valid
zurückgeben.
Kann jemand herausfinden, was falsch ist?
2 Stimmen
Deine Syntax für
[[
ist inkorrekt.1 Stimmen
Sie müssen das Skript mit Bash ausführen, nicht mit Sh (das normalerweise (d)ash ist). Es gibt keinen
=~
Operator, der dastest
Dienstprogramm verwendet (das von (d)ash verwendet wird).