Différences
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 | Révision précédente | ||
info:bash:pipeline:code_retour [2022/11/12 12:09] – franck | info:bash:pipeline:code_retour [2022/12/03 10:50] (Version actuelle) – franck | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======Gérer les codes retours des commandes en pipelines====== | ======Gérer les codes retours des commandes en pipelines====== | ||
- | les pipelines en bash, rappel: Ils permettent d' | + | les pipelines en bash, rappel: Ils permettent d’enchaîner |
<code bash> | <code bash> | ||
commande 1 | commande 2 | commande 3 .... | commande 1 | commande 2 | commande 3 .... | ||
Ligne 17: | Ligne 17: | ||
PIPESTATUS[] se comporte comme un tableau bash.\\ | PIPESTATUS[] se comporte comme un tableau bash.\\ | ||
\\ | \\ | ||
- | A noter pour les exemples: " | + | A noter pour les exemples: " |
\\ | \\ | ||
Pour la commande ci-dessous, la variable PIPESTATUS[0] renvoi le code retour de " | Pour la commande ci-dessous, la variable PIPESTATUS[0] renvoi le code retour de " | ||
Ligne 28: | Ligne 28: | ||
<code bash> | <code bash> | ||
true | exit 10 | exit 20 | exit 30 | exit 40 | exit 50 | exit 60 | true | exit 10 | exit 20 | exit 30 | exit 40 | exit 50 | exit 60 | ||
- | echo " | + | echo " |
- | ${PIPESTATUS[0]}=40 | + | ${PIPESTATUS[4]}=40 |
</ | </ | ||
<code bash> | <code bash> | ||
Ligne 51: | Ligne 51: | ||
0 11 22 33 44 55 66 | 0 11 22 33 44 55 66 | ||
</ | </ | ||
- | |||
=====option pipefail===== | =====option pipefail===== | ||
- | les codes retours différents de 0 d'une commande a l’intérieur d'un pipeline | + | les codes retours différents de 0 d'une commande a l’intérieur d'un pipeline est souvent un problème notamment dans les scripts ou dans les commandes Ansible.\\ |
- | L' | + | L' |
<code bash> | <code bash> | ||
# | # | ||
Ligne 66: | Ligne 65: | ||
printf " | printf " | ||
</ | </ | ||
- | \\ | + | |
====pipefail dans une commande Ansible==== | ====pipefail dans une commande Ansible==== | ||
Dans une commande Ansible vous pouvez utiliser l' | Dans une commande Ansible vous pouvez utiliser l' | ||
Vous pouvez ainsi récupérer le code retour d' | Vous pouvez ainsi récupérer le code retour d' | ||
- | |||
<code yaml> | <code yaml> | ||
- name: Recuperer le nom de répertoire numérique de la version la plus élevé dans / | - name: Recuperer le nom de répertoire numérique de la version la plus élevé dans / |