【问题标题】:Bash script how to sleep in new process then execute a commandBash脚本如何在新进程中休眠然后执行命令
【发布时间】:2012-04-13 15:47:11
【问题描述】:

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

这是一个例子:

sleep 30 'echo executing...' &

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

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

【问题讨论】:

    标签: linux bash


    【解决方案1】:

    你可以的

    (sleep 30 && command ...)&
    

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

    【讨论】:

    • 谢谢!干净多了!
    • 这不会退出当前行,有没有办法在完成后添加CTRL+C
    【解决方案2】:

    你可以在后台调用另一个shell,让它做你想做的事:

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

    睡眠的默认间隔是以秒为单位的,所以上面会睡眠 30 秒。您可以指定其他时间间隔,例如:30m 30 分钟,1h 1 小时,3d 3 天。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      • 2014-12-13
      • 2021-02-12
      • 2020-12-08
      • 2014-02-27
      • 2015-05-28
      • 1970-01-01
      相关资源
      最近更新 更多