Ces opérateurs permettent d’exécuter ou non une commande en fonction du code de retour d’une autre commande. L’évaluation est faite de gauche à droite.
Il ne faut pas confondre les opérateurs du shell (&& et ||) qui effectuent une opération logique entre deux commandes Unix avec les opérateurs de la commande [[ ]] (&& et ||) qui sont internes à cette dernière.
Opérateur
Signification
&&
ET logique
||
OU logique
Syntaxe
commande1 && commande2
La deuxième commande est exécutée uniquement si la première commande renvoie un code vrai.
L’expression globale est vraie si les deux commandes renvoient vrai.
Exemples
Le répertoire /tmp/svg n’existe pas, la commande cd n’est donc pas exécutée :
$ ls -d /tmp/svg /tmp/svg: No such file or directory $ pwd /export/home/christie $ [[ -d /tmp/svg ]] && cd /tmp/svg $ echo $? # Code de la commande [[ ]] 1 $ pwd /export/home/christie
Le répertoire /tmp/svg existe, la commande cd est donc exécutée :
$ mkdir /tmp/svg $ [[ -d /tmp/svg ]] && cd /tmp/svg $ pwd /tmp/svg $
Ces actions peuvent également être implémentées avec la structure de contrôle if.
$ pwd /export/home/christie ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique