Bash脚本如何在新进程中休眠然后执行命令

时间:2012-03-29 23:03:01

标签: linux bash

所以,我想知道是否有一个bash命令让我分叉一个睡眠几秒钟的进程,然后执行一个命令。

以下是一个例子:

sleep 30 'echo executing...' &

^这实际上不起作用(因为sleep命令只接受time参数),但是有什么东西可以做这样的事情吗?那么,基本上,一个睡眠命令需要一个时间参数,并在间隔完成时执行某些操作?我希望能够将它分成不同的进程,然后继续处理shell脚本。

另外,我知道我可以编写一个简单的脚本来执行此操作,但是由于对情况的一些限制(我实际上是通过ssh调用传递它),我宁愿不这样做。

2 个答案:

答案 0 :(得分:35)

你可以做到

(sleep 30 && command ...)&

使用&&;更安全,因为它可确保command ...仅在睡眠定时器到期时才会运行。

答案 1 :(得分:16)

您可以在后台调用另一个shell并使其按照您的意愿执行:

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

睡眠的默认间隔以秒为单位,因此上述情况将睡眠30秒。您可以指定其他时间间隔,例如:30m 30分钟,1h 1小时,或3d 3天。