我有一个打印出通过或失败的程序.我想检测挂在那里的程序并回显'超时'
我写了一个这样的脚本:
#!/bin/bash
echo -n 'test' && timeout 5 ./mytest | grep -q -i 'passed' && echo ', passed'|| echo ', failed'
if [ $? -eq 124 ]; then
echo 'timeout'
fi
Run Code Online (Sandbox Code Playgroud)
但它会把程序挂在那里作为"失败"并杀死程序.任何建议将不胜感激.谢谢!
男子超时:
NAME
timeout - run a command with a time limit
SYNOPSIS
timeout [OPTION] DURATION COMMAND [ARG]...
timeout [OPTION]
DESCRIPTION
Start COMMAND, and kill it if still running after DURATION.
...
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
cmd_output=`timeout 5 ./mytest`
if [ $? -eq 124 ]; then
echo 'timeout'
else
echo $cmd_output
fi
Run Code Online (Sandbox Code Playgroud)