Bash:运行命令并在必要时等待(与超时相反)



我有一个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"函数存在吗?

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

python myscript.py &
sleep 10 &
wait

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

foo () {
    t=$1
    shift
    "$@" &
    sleep "$t" &
    wait
}
foo 10 python myscript.py

相关内容

  • 没有找到相关文章

最新更新