【问题标题】:Bash : run a command and wait if necessary (contrary of timeout)Bash:运行命令并在必要时等待(与超时相反)
【发布时间】:2016-07-24 15:04:26
【问题描述】:

我有 10 秒的间隔。我想在 shell 中运行一个命令,然后等待完成 10 秒的间隔。如果命令花费的时间超过 10 秒,则可以。

我正在寻找下面的“foo”函数:

>> foo 10 python myscript.py
  • 如果 myscript.py 需要 2 秒,则 shell 应在此之后等待 8 秒。
  • 如果 myscript.py 需要 5 秒,则 shell 应在此之后等待 5 秒。
  • 如果 myscript.py 需要 12 秒,shell 不应等待。它也不应该超时 myscript.py !

这个“foo”函数存在吗?

【问题讨论】:

标签: bash timeout


【解决方案1】:

只需在后台运行sleep 10 和您的脚本,然后等待两者都完成。

python myscript.py &
sleep 10 &
wait

您可以定义一个外壳函数来包装简单命令(命令名称及其参数;没有管道、重定向、&&|| 等)

foo () {
    t=$1
    shift
    "$@" &
    sleep "$t" &
    wait
}

foo 10 python myscript.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多