我如何知道一个进程在 bash 中是否超时?

Hal*_*aby 2 linux bash scripting timeout

我怎么知道“可执行文件”是否真的超时了?超时 1 ./可执行文件

我需要一个条件来检查 if 语句。

小智 6

来自man timeoutGNU coreutils 8.25):

如果命令超时,并且未设置 --preserve-status,则以状态 124 退出。否则,以 COMMAND 状态退出。

所以,你可以检查$?中包含的退出代码,如果是124,则命令超时:

timeout 1 ./executable

if [ $? -ne 124 ]; then 
    echo "the command timed out"
fi
Run Code Online (Sandbox Code Playgroud)