Les opérateurs du shell Opérateur
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 |
! |
Négation (posix, ksh93, bash. Non documenté en ksh88 mais fonctionne) |
1. Évaluation de l’opérateur &&
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...