next up previous contents Next: Paramètres spéciaux: $?, $*, Up: Scripts de shell avancés. Previous: Scripts de shell avancés.   Table des matières  

21.1 Liste de commandes.

Les opérateurs spéciaux && et | | permettent d'exécuter des fonctions en série, comme par exemple:

grep '^harry:' /etc/passwd | | useradd harry 


Le symbole | | signifie qu'il ne faut exécuter le seconde commande que si la première retourne une erreur. Dans la commande ci-dessus, grep émet un code de sortie (1) si harry ne se trouve pas parmi la liste des utilisateurs reprise dans le fichier /etc/passwd. Ceci provoque alors l'exécution de la commande useradd.

Une représentation alternative consiste en:

grep -v '^harry:' /etc/passwd &&  useradd harry 


où l'option -v inverse la logique de recherche des correspondances de grep (ici, si grep ne trouve pas le nom harry, il y a réussite et la commande useradd doit être exécutée). Le symbole && a donc la signification contraire de | | (c'est-à-dire l'exécution de la seconde commande si la première réussit).

Les adeptes des scripts enchaînent souvent plusieurs commandes pour créer une opération sous une forme succinte:

grep -v '^harry:' /etc/passwd && useradd harry | | \ 
    echo "`date`: useradd failed"  » /var/log/mon_journal_special 


next up previous contents Next: Paramètres spéciaux: $?, $*, Up: Scripts de shell avancés. Previous: Scripts de shell avancés.   Table des matières  
1-01-2006