2016-04-07 4 views
0

ich mehr setzen will Vergleichsbedingungen in einem if-Anweisung mit „oder“ Operator Hier ist der Code-Schnipsel.,Mulitple Vergleichsbedingungen in einer if-Anweisung in bash

if [[ "$input" == "string1" ] || [ "$input" == "string2" ] || [ "$input" == "string3" ]]; then 
    ... 
    fi 

Aber wenn ich den Befehl es, schlägt fehl, Syntaxfehler in der Nähe von unerwartetem Token `] 'zu sagen.

Könnt ihr bitte bitte helfen?

Antwort

2

ersetzen

[[ .. ] || [ .. ] || [ .. ]] 

von

[[ .. ]] || [[ .. ]] || [[ .. ]] 
+0

und, unter der Theorie, dass weniger Code besser Code ist, können Sie tun, wenn [["x" == "y" || "y" == "y"]]; dann echo OK; sonst Echo nein; fi' (zumindest in ksh). Viel Glück für jeden. – shellter

1

Das Versuchen, Sie brauchen keine zusätzliche [ auf den ersten und letzten Position, wenn Zustand.

if [ "$input" == "string1" ] || [ "$input" == "string2" ] || [ "$input" == "string3" ]; then 
    ... 
fi