it-swarm.com.de

Verwenden des Operators && in einer if-Anweisung

Ich habe drei Variablen:

VAR1="file1"
VAR2="file2"
VAR3="file3"

Wie benutzt man und (&&) Operator in if-Anweisung wie folgt:

if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
   then ...
fi

Wenn ich diesen Code schreibe, gibt es Fehler. Was ist der richtige Weg?

69

Damit Ihr Ausdruck funktioniert, ändern Sie && zum -a macht den Trick.

Es ist richtig so:

 if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
 then  ....

oder wie

 if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
 then  ....

oder auch

 if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
 then  ....

Weitere Details finden Sie in dieser Frage bash: Mehrere unäre Operatoren in der if-Anweisung und einigen dort angegebenen Referenzen wie Was ist der Unterschied zwischen test, [und [[? .

147
fedorqui