Ich möchte mithilfe eines regulären Ausdrucks überprüfen, ob eine Variable ein gültiges Jahr hat. Wenn ich das Bash-Handbuch lese, kann ich den Operator = ~ verwenden
Wenn ich mir das folgende Beispiel anschaue, würde ich erwarten, dass "nicht OK" angezeigt wird, aber ich sehe "OK". Was mache ich falsch?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
regex
bash
conditional
idrosid
quelle
quelle
=~
.Antworten:
Es wurde zwischen 3.1 und 3.2 geändert:
Verwenden Sie es also ohne die Anführungszeichen wie folgt:
quelle
a +b
, wird ein Syntaxfehlera\ \+b
, um dem Leerzeichen und dem Pluszeichen zu entkommen.Sie benötigen Leerzeichen um den Operator = ~
quelle