嗨,我想在多個命令列中使用等待,但它似乎不起作用:
sleep 10 &
[1] 13004
(date; wait; sleep 15; date) &
31 oct 2021 18:34:32 -05
31 oct 2021 18:34:47 -05
看看在第二個日期它應該顯示 18:34:57 因為等待假設在第一次睡眠后 10 秒完成。
有什么我想念的嗎?
謝謝你的幫助
uj5u.com熱心網友回復:
哦,太好了,謝謝你的回答。所以這就是它的作業原理!!
sleep 5 & date; wait; sleep 5 && date &
[1] 19031
31 oct 2021 19:51:10 -05
[1] Done sleep 5
[1] 19034
31 oct 2021 19:51:20 -05
只是想知道如何將所有命令放在后臺行程中
謝謝
uj5u.com熱心網友回復:
您可以使用flock在子行程之間等待。
#!/bin/bash
flock /tmp/wsleep sleep 5 &
(date; flock /tmp/wsleep sleep 5; date) &
輸出:
Mon 01 Nov 2021 03:43:21 AM UTC
Mon 01 Nov 2021 03:43:31 AM UTC
uj5u.com熱心網友回復:
來自linux.die.net
wait [n ...]
等待每個指定的行程并回傳其終止狀態。每個 n 可以是行程 ID 或作業規范;如果給出了作業規范,則等待該作業管道中的所有行程。如果未給出 n,則等待所有當前活動的子行程,回傳狀態為零。如果 n 指定一個不存在的行程或作業,則回傳狀態為 127。否則,回傳狀態為最后等待的行程或作業的退出狀態。
關鍵是它等待子行程。使用括號會創建一個新的子外殼,這意味著括號內的內容將不是在它之前在后臺運行的事物的“父級”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344213.html
標籤:linux
上一篇:【Java】通訊錄管理系統小專案
