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?
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 [[? .