簡體   English   中英

Bash腳本如何在新進程中休眠然后執行命令

[英]Bash script how to sleep in new process then execute a command

所以,我想知道是否有一個bash命令讓我分叉一個睡眠幾秒鍾的進程,然后執行一個命令。

這是一個例子:

sleep 30 'echo executing...' &

^這實際上不起作用(因為sleep命令只接受時間參數),但有什么東西可以做這樣的事情嗎? 那么,基本上,一個睡眠命令需要一個時間參數,並在間隔完成時執行某些操作? 我希望能夠將它分成不同的進程,然后繼續處理shell腳本。

另外,我知道我可以編寫一個簡單的腳本來執行此操作,但由於對情況的一些限制(我實際上是通過ssh調用傳遞它),我寧願不這樣做。

你可以做

(sleep 30 && command ...)&

使用&&比使用更安全; 因為它確保command ...僅在睡眠定時器到期時才會運行。

您可以在后台調用另一個shell並使其執行您想要的操作:

bash -c 'sleep 30; do-whatever-else' &

睡眠的默認間隔以秒為單位,因此上述情況將睡眠30秒。 :您可以指定其他時間間隔像30m 30分鍾,或1h 1小時,或3d 3天。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM