Saya telah "mewarisi" beberapa skrip shell untuk mesin Linux yang menjalankan shell "bash" GNU. Dalam satu kasus tertentu, mesin menjalankan GNU bash versi 2.0.5b
Salah satu skrip tersebut memiliki wait &
instruksi ("tunggu ampersand") sebagai bagian dari "untuk baris" dari sebuah for
loop. Pada pandangan pertama, itu sepertinya idiom penasaran / menarik, tetapi pencarian web saya untuk itu tidak menghasilkan sesuatu yang relevan. man wait
memperlihatkan halaman "BASH_BUILTINS" ("BASH BUILTINS COMMAND"), yang memiliki uraian berikut:
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.
Dengan membaca bagian dari halaman manual ini, tampaknya bagi saya yang wait &
diam-diam (di latar belakang) memastikan bahwa " semua proses anak yang sedang aktif menunggu, dan status kembalinya nol ." Apakah saya benar dalam penafsiran ini? Apakah ini idiom yang umum dan / atau berguna?
Untuk konteks tambahan, saya berbicara tentang jenis penggunaan berikut dalam skrip:
for file in `ls *.txt ; wait &`
do
...
[cp instructions]
...
[mv instructions]
...
[mailx instruction]
done
sumber