Я «унаследовал» некоторые сценарии оболочки для машин Linux, работающих под оболочкой GNU «bash». В одном конкретном случае на машине работает GNU bash версии 2.0.5b
В одном из этих сценариев есть wait &
инструкция («ждать амперсанд») как часть цикла «for line» for
. На первый взгляд, это кажется любопытной / интересной идиомой, но мои поиски в сети не дали ничего уместного. man wait
показывает справочную страницу "BASH_BUILTINS" ("BASH BUILTINS COMMAND"), которая имеет следующее описание:
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.
Читая эту часть этой man-страницы, мне кажется, что wait &
она молча (в фоновом режиме) проверяет, что « все текущие активные дочерние процессы ожидаются, а статус возврата равен нулю ». Прав ли я в этой интерпретации? Это распространенная и / или полезная идиома?
Для дополнительного контекста я говорю о следующем виде использования в скрипте:
for file in `ls *.txt ; wait &`
do
...
[cp instructions]
...
[mv instructions]
...
[mailx instruction]
done
источник