web-dev-qa-db-fra.com

Utilisation de l'opérateur && dans une instruction if

J'ai trois variables:

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

Comment utiliser et l'opérateur (&&) dans l'instruction if comme ceci:

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

Quand j'écris ce code, cela donne une erreur. Quelle est la bonne façon?

69

Donc, pour que votre expression fonctionne, changer && pour -a fera l'affaire.

C'est correct comme ça:

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

ou comme

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

ou même

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

Vous pouvez trouver plus de détails dans cette question bash: Plusieurs opérateurs unaires dans l'instruction if et quelques références données ici comme Quelle est la différence entre test, [et [[? .

147
fedorqui