概述
wait 字面意思是「等待」,在 shell 腳本中,它會暫停 shell 的執行,直到在背景中運行的任務結束。通常用於在多個任務使用 `&` 符號並行運行於背景後,需要等待所有這些任務完成才能繼續執行下一個操作的場景。使用 `wait` 還可以讓腳本檢查背景進程的退出碼,這有助於判斷任務是否成功。
主要特點
wait 命令的主要特點如下:
- 等待特定背景任務的終止。
- 可以指定任務編號(job number)或進程 ID(PID)作為參數。
- 如果沒有參數執行,則等待所有背景任務終止。
- 在 shell 腳本中,對於同步多個並行任務非常有用。
主要選項
wait 命令是一個簡單的命令,它接受任務編號或 PID 作為參數,幾乎沒有其他選項。
1) 執行選項
2) 幫助
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`wait` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
通過 wait 命令的各種使用範例來熟悉其功能。
等待所有背景任務
sleep 5 &
sleep 10 &
jobs
wait
echo '所有任務已完成。'
在背景中運行多個 `sleep` 任務後,使用 `wait` 命令等待所有任務完成。
等待特定任務
sleep 10 &
sleep 5 &
jobs
wait %1
echo '第1個任務已完成。'
等待兩個任務中的第 1 個任務結束。使用 `jobs` 命令確認任務編號,然後使用 `wait %1`。
按進程 ID (PID) 等待
sleep 10 &
PID=$!
echo "PID $PID 的任務已開始。"
wait $PID
echo "PID $PID 的任務已完成。"
在腳本中,使用 `$` 將背景進程的 PID 存儲到變量中,然後等待該 PID 終止。
安裝
wait 是 shell (如 bash, zsh 等) 的內置命令,無需單獨安裝。
提示與注意事項
整理了使用 wait 命令時需要注意的事項。
提示
- `wait` 會暫停 shell 的執行,直到背景進程終止。如果進程沒有終止,shell 會一直等待。
- `wait` 命令的退出狀態碼與其等待的進程的退出狀態碼相同。這允許在腳本中檢查任務是否成功。
- 要使用任務編號 (`%1`),您需要首先使用 `jobs` 命令來查看當前 shell 的背景任務。`$!` 是一個特殊變量,包含最近一個在背景中運行的進程的 PID。