„Odziedziczyłem” niektóre skrypty powłoki dla maszyn z systemem Linux, na których działa powłoka „bash” GNU. W jednym szczególnym przypadku na maszynie działa GNU bash w wersji 2.0.5b
Jeden z tych skryptów ma wait &
instrukcję („czek ampersand”) jako część „for line” for
pętli. Na pierwszy rzut oka wydaje się to dziwnym / ciekawym idiomem, ale moje wyszukiwania w sieci nie zwróciły niczego istotnego. man wait
pokazuje stronę podręczną „BASH_BUILTINS” („BASH BUILTINS COMMAND”), która ma następujący opis:
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.
Czytając tę część tej strony, wydaje mi się, że wait &
po cichu (w tle) upewnia się, że „ wszystkie aktualnie aktywne procesy potomne są oczekiwane, a zwracany status wynosi zero ”. Czy mam rację w tej interpretacji? Czy to powszechny i / lub użyteczny idiom?
Dla dodatkowego kontekstu mówię o następującym sposobie użycia w skrypcie:
for file in `ls *.txt ; wait &`
do
...
[cp instructions]
...
[mv instructions]
...
[mailx instruction]
done
źródło