J'ai «hérité» de certains scripts shell pour les machines Linux exécutant le shell GNU «bash». Dans un cas particulier, la machine exécute GNU bash version 2.0.5b
Un de ces scripts a une wait &
instruction ("attente esperluette") dans le cadre de la ligne "for" d'une for
boucle. À première vue, cela semble être un idiome curieux / intéressant, mais mes recherches sur le Web n'ont rien renvoyé de pertinent. man wait
affiche la page de manuel "BASH_BUILTINS" ("BASH BUILTINS COMMAND"), qui a la description suivante:
wait [n]
Wait for the specified process and return its termination status.
n may be a process ID or a job specification; if a job spec is given,
all processes in that job's pipeline are waited for. If n is not
given, all currently active child processes are waited for, and the
return status is zero. If n specifies a non-existent process or job,
the return status is 127. Otherwise, the return status is the exit
status of the last process or job waited for.
En lisant cette partie de cette page de manuel, il me semble que wait &
c'est en silence (en arrière-plan) de s'assurer que " tous les processus enfants actuellement actifs sont attendus et que le statut de retour est zéro ". Ai-je raison dans cette interprétation? Est-ce un idiome courant et / ou utile?
Pour plus de contexte, je parle du type d'utilisation suivant dans le script:
for file in `ls *.txt ; wait &`
do
...
[cp instructions]
...
[mv instructions]
...
[mailx instruction]
done
la source