[Bash] Récupération de l'exit status d'une commande

Bonjour à tous.

J’ai un script de sauvegarde automatique utilisant rsync qui a à peu près cette tête la :

[code]
log="#log_file"
dest="#backup_dir"
sources=(
#source1,
#source2
)

date > "$log"
for source in ${sources[*]}; do
rsync # 2>&1 | sed # | tee -a "$log"
done[/code]
J’aimerais bien avoir une variable, à afficher à la fin du script, qui compte le nombre d’erreurs de rsync.
En gros le nombre de fois que rsync renvoie un code d’erreur différent de 0.
Normalement j’utilise la variable $? qui contient le retour de la dernière commande exécutée, mais la ça ne marche pas car entre temps j’ai aussi lancé sed et tee.

Est ce que quelqu’un aurait une idée permettant de contourner ce problème ?

Bon bah du coup j’ai réussi a trouver la solution avec une bonne dose de recherche.
Il faut utiliser la variable [mono]$PIPESTATUS[/mono].
C’est un array qui stocke les retour des différentes commandes exécutées sur une ligne.
par exemple, [mono]#cmd1 | #cmd2 | #cmd3 ; echo ${PIPESTATUS[0]}[/mono] renverra le retour de #cmd1.

Ah, tiens !
Tu viens de m’apprendre quelque chose qui me sera forcèment utile :smiley:

Merci