检查超时命令是否成功

时间:2018-02-13 17:07:38

标签: bash timeout

我正在尝试在bash文件中运行命令并将命令的输出放在变量中。但命令不得超过2秒。我使用命令:

timeout -k 2 2 ls /var/log/;

没有问题。该命令列出日志目录的内容或者在超过两秒的时间内终止该命令。但是当我尝试将输出放在变量中时,命令会挂起并且不会回复或被杀死!我这样用:

result=$(timeout -k 2 2 ls /var/log/);

我的错误在哪里?

1 个答案:

答案 0 :(得分:2)

timeout命令将退出状态124,如果它必须终止进程;见here。所以你可以试试像:

timeout -k 2 2 ls /var/log/ >directory.txt
if [ $? -eq 124 ]
then
  echo "Timeout exceeded!"
else
  cat directory.txt
fi