我正在尝试在bash文件中运行命令并将命令的输出放在变量中。但命令不得超过2秒。我使用命令:
timeout -k 2 2 ls /var/log/;
没有问题。该命令列出日志目录的内容或者在超过两秒的时间内终止该命令。但是当我尝试将输出放在变量中时,命令会挂起并且不会回复或被杀死!我这样用:
result=$(timeout -k 2 2 ls /var/log/);
我的错误在哪里?
答案 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