wait (命令)
用法
wait [n]
其中n是當前正在執行的後台行程的pid,或工作的工作ID。如果沒有給定n,命令會等待shell呼叫的所有工作終止。
wait一般返回最後一個工作的退出狀態。如果n所指的工作不存在,或沒有工作要等待,它會返回127。
因為wait
需要知道當前shell執行環境的工作表,它通常為shell內建命令。
範例
當指令碼後部分要求前部分成功執行,此命令可以讓前部分並列執行,以節省時間。
下面是一個例子,使用rsync取得iona上的src/目錄,同時更新這個程式所依賴的庫,然後組合編譯。
#!/usr/bin/env bash
# 使用wait命令的并行更新脚本
# 更新本地副本
rsync iona:src/ . &
# 升级所需的库,或如果出于某种原因失败时,返回1并退出
make -C lib || exit 1
# 等待rsync终止(可能已启动),并完成工作,除非rsync失败
wait && make
等待指定的工作控制id號:
$ ls -R / > /dev/null 2>&1 & # 启动长时间运行的后台进程
[2] 1986
$ wait %2 # 等待2号后台工作终止,然后返回