Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

État de sortie

Les commandes (y compris les scripts et les fonctions shell que nous écrivons) envoient une valeur au système lorsqu'elles se terminent, appelée état de sortie. Cette valeur, qui est un entier compris entre 0 et 255, indique le succès ou l'échec de l'exécution de la commande. Par convention, une valeur de zéro indique un succès et toute autre valeur indique un échec. Le shell fournit un paramètre que nous pouvons utiliser pour examiner l'état de sortie. On le voit ici en action :



[moi@linuxbox ~]$ ls -d /usr/bin

/ usr / bin

[moi@linuxbox ~]$ écho $?

0

[moi@linuxbox ~]$ ls -d /bin/usr

ls : impossible d'accéder à /bin/usr : aucun fichier ou répertoire de ce type [me@linuxbox ~]$ écho $?

2

[moi@linuxbox ~]$ ls -d /usr/bin

/ usr / bin

[moi@linuxbox ~]$ écho $?

0

[moi@linuxbox ~]$ ls -d /bin/usr

ls : impossible d'accéder à /bin/usr : aucun fichier ou répertoire de ce type [me@linuxbox ~]$ écho $?

2

État de sortie


Dans cet exemple, nous exécutons le ls commande deux fois. La première fois, la commande s'exécute avec succès. Si on affiche la valeur du paramètre $?, on voit qu'il est nul. Nous exécutons le ls commande une seconde fois (en spécifiant un répertoire inexistant) , produisant une erreur, et examine le paramètre $? de nouveau. Cette fois, il contient un 2, indiquant que la commande a rencontré une erreur. Certaines commandes utilisent différentes valeurs d'état de sortie pour fournir des diagnostics d'erreurs, tandis que de nombreuses commandes se terminent simplement avec une valeur de un lorsqu'elles échouent. Les pages de manuel incluent souvent une section intitulée « État de sortie », décrivant les codes utilisés. Cependant, un zéro indique toujours le succès.

Le shell fournit deux commandes internes extrêmement simples qui ne font rien d'autre que terminer avec un état de sortie zéro ou un. Les oui la commande s'exécute toujours avec succès et la non la commande s'exécute toujours sans succès :


[moi@linuxbox ~]$ oui [moi@linuxbox ~]$ écho $? 0

[moi@linuxbox ~]$ non [moi@linuxbox ~]$ écho $? 1

[moi@linuxbox ~]$ oui [moi@linuxbox ~]$ écho $? 0

[moi@linuxbox ~]$ non [moi@linuxbox ~]$ écho $? 1


Nous pouvons utiliser ces commandes pour voir comment le if la déclaration fonctionne. Qu'est-ce que le if L'instruction évalue réellement le succès ou l'échec des commandes :



[moi@linuxbox ~]$ si vrai; then echo "C'est vrai."; Fi

C'est vrai.

[moi@linuxbox ~]$ si faux ; then echo "C'est vrai."; Fi

[moi@linuxbox ~]$

[moi@linuxbox ~]$ si vrai; then echo "C'est vrai."; Fi

C'est vrai.

[moi@linuxbox ~]$ si faux ; then echo "C'est vrai."; Fi

[moi@linuxbox ~]$


La commande echo "C'est vrai." est exécuté lorsque la commande suivante if s'exécute avec succès et n'est pas exécuté lorsque la commande suivante if ne s'exécute pas avec succès. Si une liste de commandes suit if, la dernière commande de la liste est évaluée :


[moi@linuxbox ~]$ si faux ; vrai; then echo "C'est vrai."; fi C'est vrai.

[moi@linuxbox ~]$ si vrai ; faux; then echo "C'est vrai."; fi [moi@linuxbox ~]$

[moi@linuxbox ~]$ si faux ; vrai; then echo "C'est vrai."; fi C'est vrai.

[moi@linuxbox ~]$ si vrai ; faux; then echo "C'est vrai."; fi [moi@linuxbox ~]$


Meilleur système d'exploitation Cloud Computing chez OnWorks :