User Tools

Site Tools


informatique:linux:programmation_shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
informatique:linux:programmation_shell [2019/04/24 07:32] – [Les tableaux] pteuinformatique:linux:programmation_shell [2019/04/24 07:53] – [pipe ("|")] pteu
Line 251: Line 251:
 </code> </code>
  
-Le soucis c'est qu'on ne récupère que le code de retour de la dernière commande du pipe ; et dans l'exemple précédent, awk renvoie toujours 0. On peut récupérer ce code de retour dans le tableau $PIPESTATUS (spécifique à bash) :+Le soucis c'est qu'on ne récupère que le code de retour de la dernière commande du pipe ; et dans l'exemple précédent, awk renvoie toujours 0. Pour résoudre ce soucis, on peut 
 +  * récupérer les codes de retour de chaque commande dans le tableau ''$PIPESTATUS'' (spécifique à bash) :
 <code bash> <code bash>
 false | true false | true
-echo "${PIPESTATUS[0]} ${PIPESTATUS[1]}"+echo "${PIPESTATUS[@]}"
  1 0  1 0
 </code> </code>
 +  * utiliser la variable ''$pipefail'' (ksh, zsh ou bash) qui va enregistrer le code de retour de la dernière commande qui se terminera en erreur (retour != 0) ; ou à défaut, vaudra 0 si toutes se terminent correctement : 
 +<code bash> 
 +$ false | true; echo $? 
 +
 +$ set -o pipefail 
 +$ false | true; echo $? 
 +
 +</code>
 ===== read ===== ===== read =====
  
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu