所以,我想知道是否有一个bash命令让我分叉一个睡眠几秒钟的进程,然后执行一个命令.
这是一个例子:
sleep 30 'echo executing...' &
Run Code Online (Sandbox Code Playgroud)
^这实际上不起作用(因为sleep命令只接受时间参数),但有什么东西可以做这样的事情吗?那么,基本上,一个睡眠命令需要一个时间参数,并在间隔完成时执行某些操作?我希望能够将它分成不同的进程,然后继续处理shell脚本.
另外,我知道我可以编写一个简单的脚本来执行此操作,但由于对情况的一些限制(我实际上是通过ssh调用传递它),我宁愿不这样做.
Ide*_*lic 38
你可以做
(sleep 30 && command ...)&
Run Code Online (Sandbox Code Playgroud)
使用&&比安全更安全,;因为它确保command ...仅在睡眠定时器到期时才会运行.
Joh*_*nck 19
您可以在后台调用另一个shell并使其执行您想要的操作:
bash -c 'sleep 30; do-whatever-else' &
Run Code Online (Sandbox Code Playgroud)
睡眠的默认间隔以秒为单位,因此上述情况将睡眠30秒.您可以指定其他间隔,例如:30m30分钟,1h1小时或3d3天.