Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:script-bash-etat-de-sorie-et-les-tests [10/07/2014 13:35] Hypathie [Script bash : état de sorie et les tests] |
doc:programmation:shells:script-bash-etat-de-sorie-et-les-tests [10/07/2014 16:35] Hypathie [État de sortie et code de retour] |
||
---|---|---|---|
Ligne 23: | Ligne 23: | ||
Il ne faut pas confondre le code de retour et le résultat d'une commande. Le résultat est ce qui s'inscrit sur la sortie standard. | Il ne faut pas confondre le code de retour et le résultat d'une commande. Le résultat est ce qui s'inscrit sur la sortie standard. | ||
- L'exécution de tous programmes et de toutes fonctions renvoie une valeur numérique appelée code de retour. | - L'exécution de tous programmes et de toutes fonctions renvoie une valeur numérique appelée code de retour. | ||
- | - Il est envoyé 0 si tout c'est bien passé lors de l'exécution, et un nombre entre 1 et 255 s'il y a eu une erreur. | + | - Il est envoyé ''0'' si tout c'est bien passé lors de l'exécution, et un nombre entre ''1 et 255'' s'il y a eu une erreur. |
- | - Pour récupérer le code de retour on utilise le paramètre spécial $? | + | - Pour récupérer le code de retour on utilise le paramètre spécial ''$?''. |
- Il y a des codes de retour particuliers, par exemple : | - Il y a des codes de retour particuliers, par exemple : | ||
Ligne 37: | Ligne 37: | ||
127 | 127 | ||
</code> | </code> | ||
- | //On peut chercher dans les codes d'erreur de bash que 127 est le code de retour pour les commandes qui n'ont pas pu être trouvées. | + | |
- | // | + | >On peut chercher dans les codes d'erreur de bash que ''127'' est le code de retour pour les commandes qui n'ont pas pu être trouvées. |
L'état de sortie vrai ou faux ( 0 ou autre chose) est utilisé avec : | L'état de sortie vrai ou faux ( 0 ou autre chose) est utilisé avec : | ||
- enchaînements conditionnels : | - enchaînements conditionnels : | ||
- | - les tests ( commande test, double crochets, if/else, case) | + | - les tests ( commande ''test'', ''<nowiki>[[ ]]</nowiki>'', ''if/else'', ''case'') |
==== L'enchaînement conditionnel est fondé sur le code de retour==== | ==== L'enchaînement conditionnel est fondé sur le code de retour==== | ||
Ligne 53: | Ligne 54: | ||
est basé utilise le code de retour : | est basé utilise le code de retour : | ||
- | - L'opérateur ''&&'' : avec cet opérateur, chaque commande d'une suite est exécuté l'une après l'autre si le code retour de la première est 0 (c'est-à-dire si elle a fonctionné).\\ | + | - L'opérateur ''&&'', ''cmd1 && cmd2'' : avec cet opérateur, la commande 2 est exécutée si le code retour de la commande 1 est ''0'' (c'est-à-dire, si elle a fonctionné).\\ |
- | - L'opérateur ''||'' : la commande suivante est exécutée si le code de retour de la première est différente de zéro, c'est-à-dire si elle n'a pas fonctionné. | + | - L'opérateur ''||'', ''cmd1 || cmd2'' : la commande 2 est exécutée si le code de retour de la première est __différente de zéro__, c'est-à-dire si elle n'a pas fonctionné. |
* Exemple : | * Exemple : | ||
Ligne 111: | Ligne 112: | ||
==== Utiliser la commande exit ==== | ==== Utiliser la commande exit ==== | ||
- | * Syntaxe : | + | * Syntaxe : ''exit nombre'' |
- | exit + nombre (nombre de 1 à 3 chiffre(s).) | + | >Avec un nombre de 1 à 3 chiffre(s). |
| | ||
===La commande "exit" === | ===La commande "exit" === | ||
Ligne 178: | Ligne 179: | ||
===Convention et sortie de programme par défaut=== | ===Convention et sortie de programme par défaut=== | ||
- | >Par convention on finit un script par exit ''0'' | + | >Par convention on finit un script par ''exit 0'' |
- | >Si on ne finit pas par exit ''0'', il s'exécute un exit ''$?'', ce qui est équivalent à un exit (tout court). | + | >Si on ne finit pas par ''exit 0'', il s'exécute un ''exit $?'' par défaut, ce qui est équivalent à un ''exit'' (tout court). |
<code bash> | <code bash> |