A mon avis tant que tu utilises un pipe, tu ne pourra jamais récupérer le code de retour de la commande à gauche du pipe. Et pour une bonne raison, c'est que les commandes à gauche et à droite du pipe s'exécutent dans deux process différent. Il est donc impossible de "transférer" le code de retour de la commande de gauche à la commande de droite.
Donc à part faire l'opération en deux temps (mysqldump dans un fichier puis bzip du fichier), je ne vois pas.
En fait si, il ya des solutions mais c'est vraiment battard. Par exemple tu pourrais faire un truc du genre :
[ -z `{ { cmd1 || echo FAILED >&2; } | cmd2; } 2>&1` ]
Qui sera vrai si cmd1 s'est déroulée avec succès.
Partager