在 bash 腳本中,我見過這樣的代碼
command &
wait
我想知道這個操作背后有什么動機而不是簡單地運行
command
反而。
這個問題的動機來自這篇文章:bash 等待 rsync 完成繼續進行,其中發布者選擇使用“等待”方法,而未接受的答案則建議使用正常的命令方法。
雖然根據我的理解,那個帖子的答案應該是正確的,但我也看到了在實踐中使用“背景和等待”方法的其他各種地方(包括公司和個人專案),所以我有點困惑。
是否存在兩種代碼實際上存在差異的情況?
uj5u.com熱心網友回復:
考慮腳本
trap 'echo bye' SIGINT
sleep 20
如果SIGINT
在sleep
運行時發送到您的腳本,則陷阱將不會執行(并且腳本不會退出),直到sleep
退出。
現在考慮
trap 'echo bye' SIGINT
sleep 20 &
wait
現在,這不是sleep
阻止腳本,而是它自己的內置wait
命令。如果SIGINT
發送到您的腳本,陷阱將執行,您的腳本將立即退出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392365.html