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 revision Previous revision
Last revision Both sides next revision
informatique:linux:programmation_shell [2019/04/24 09:32]
pteu [Les tableaux]
informatique:linux:programmation_shell [2019/04/24 09:53]
pteu [pipe ("|")]
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: 2019/04/24 11:36 by pteu