Tôi đã "kế thừa" một số tập lệnh shell cho các máy Linux chạy shell "bash" GNU. Trong một trường hợp cụ thể, máy chạy GNU bash phiên bản 2.0.5b
Một trong những tập lệnh này có lệnh wait &
("chờ ampersand") như là một phần của "for line" của for
vòng lặp. Thoạt nhìn, đó có vẻ là một thành ngữ gây tò mò / thú vị, nhưng các tìm kiếm trên web của tôi cho nó không trả về bất cứ điều gì có liên quan. man wait
hiển thị trang quản lý "BASH_BUILTINS" ("BASH BUILTINS"), có mô tả sau:
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.
Bằng cách đọc phần đó của trang này, đối với tôi, dường như tôi wait &
đang âm thầm (trong nền) đảm bảo rằng " tất cả các quy trình con hiện đang hoạt động đều được chờ đợi và trạng thái trả về bằng không ." Tôi có đúng trong cách giải thích này? Đây có phải là một thành ngữ phổ biến và / hoặc hữu ích?
Để thêm ngữ cảnh, tôi đang nói về loại sử dụng sau đây trong tập lệnh:
for file in `ls *.txt ; wait &`
do
...
[cp instructions]
...
[mv instructions]
...
[mailx instruction]
done