Ich habe versucht, dies zu verwenden:
$ if [$a == 1] then { echo 'yes'; } fi;
aber ich erhalte eine Fehlermeldung:
-bash: syntax error near unexpected token `}'
Was ist das richtige Format? Ich habe mehrere ohne Erfolg versucht.
Akzeptierte Antwort:
[ ist laut bash nur ein weiteres Zeichen; es ist nicht selbstbegrenzend. Sie müssen also Leerzeichen um [ setzen und ] . Obwohl Sie besser dran wären, [[ und ]] .
Und der Befehl nach if (ja, [ ist ein Befehl) muss mit einem ; abgeschlossen werden oder ein Zeilenumbruch.
Zum Schluss == (was nicht posix ist, FWIW; posix bevorzugt = ) ist Zeichenfolgengleichheit, keine numerische Gleichheit.
Du könntest also gemeint haben:
if [[ $a -eq 1 ]]; then echo yes; fi
Aber Sie könnten stattdessen eine arithmetische Auswertung verwenden:
if ((a == 1)); then echo yes; fi
(Bei der arithmetischen Auswertung ist die Gleichheit == , und Sie brauchen $ nicht vor Variablennamen. Ich weiß, es ist verwirrend.)
Weitere Informationen zu [ :help test . Über [[ :Hilfe [[ (die auf test aufbaut ). Über (( :help let . Über bash :man bash