如何检查bash中的无限循环?

时间:2019-05-09 03:16:52

标签: bash infinite-loop

我一直试图多次使用bash运行可执行文件。此可执行文件有可能陷入无限循环或段错误。我知道bash中没有try-catch,但是我们可以使用以下方法绕过该操作:

{ #try
    "myCommand" && "do what i want"
} || { #except
    "handle error"
}

但这不能理解无限循环。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以从gnu coreutils中使用timeout

这里有一个10秒超时的示例

timeout 10s yourscript.sh

答案 1 :(得分:0)

除非该循环发送信号或修改系统/环境,否则Bash无法告诉您myCommand内部的情况。您可以在后台&中运行#try,如果经过一定时间后仍在运行,请执行一些操作。 $!指的是最后一个后台任务。

在Bash中检出Job Control

myCommand && doWhatIWant &
sleep 10
ps $! &>/dev/null && kill $!