101 votes

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

J'ai trois variables :

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

Comment utiliser et ( && ) dans une déclaration if comme ceci :

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

Lorsque j'écris ce code, il donne une erreur. Quelle est la bonne méthode ?

203voto

fedorqui Points 42938

Donc, pour que votre expression fonctionne, il faut changer && para -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 : Opérateurs unaires multiples dans l'instruction if et quelques références qui y sont données comme [Quelle est la différence entre test, [ et [[ ?](http://mywiki.wooledge.org/BashFAQ/031) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X