7.5. Code de retour d’une commande lancée en arrière-plan

Il n’existe pas de mécanisme direct pour récupérer le code de retour d’une commande exécutée de manière asynchrone. Une méthode permettant de l’obtenir consiste à utiliser le paramètre spécial ! (à ne pas confondre avec le mot-clé ! présenté ci-dessus) et la commande interne wait.

Le paramètre spécial ! contient le numéro d’identification (pid) de la dernière commande exécutée en arrière-plan.

La commande interne wait munie d’un pid ou d’un numéro de job attend la fin du processus correspondant et place le code de retour de ce dernier dans le paramètre spécial ?.

$ grep bert tutu & wait $!		=> (a)
[1] 6427
grep: tutu: Aucun fichier ou dossier de ce type
[1]+  Termine 2                  grep --color=auto bert tutu
$ 
$ echo $?				=> (b)
2
$

Le shell lance la commande grep bert tutu en arrière-plan et attend qu'elle se termine (a), puis affiche son code de retour (b).