Bash,如何检查C程序是否超时

Bash,如何检查C程序是否超时,c,bash,C,Bash,我想运行一个C程序foo.C,它在bash脚本中编译成foo,然后检查它是否超时 foo有一个参数和10秒超时。 我想检查程序foo是否超时或执行。如果超时,我想退出0 #!/bin/sh # -*-sh-*- /foo $1 10 if [$? -eq 0] then exit 0; fi exit 1; 使用timeout命令: timeout 10s ./foo if [ $? -eq 124 ] ; then exit 0 else exit 1

我想运行一个C程序foo.C,它在bash脚本中编译成foo,然后检查它是否超时

foo有一个参数和10秒超时。 我想检查程序foo是否超时或执行。如果超时,我想退出0

#!/bin/sh
# -*-sh-*-
/foo $1 10
if [$? -eq 0]
    then
        exit 0;
fi
exit 1;

使用
timeout
命令:

timeout 10s ./foo
if [ $? -eq 124 ] ; then
    exit 0
else
    exit 1
fi
发件人:

如果命令超时,并且未设置--preserve status,则以状态124退出。否则,以命令状态退出。如果 未指定信号,在超时时发送术语信号。“信号”一词会杀死任何不阻止或捕获该信号的进程。 可能需要使用KILL(9)信号,因为无法捕获该信号,在这种情况下,退出状态为128+9,而不是 124


如果我尝试将其作为bash脚本,我会得到超时为10s/foo$1的找不到超时命令在
If
语句中使用
-eq
不是更好吗?@ab3rc如果你没有在GNU/Linux上工作,你就必须安装超时命令。安装GNUCoreutils就可以了。任何一个都应该足够了,问题是语法破坏了一切。找不到第5行命令。