【发布时间】:2016-09-03 19:59:39
【问题描述】:
我已经在这个网站和谷歌上搜索了如何让 bash 命令超时,如果它需要很长时间才能运行,并且尝试了多种不同的方法,但似乎都无法正常工作。
具体来说,我需要超时 'ls | wc -l' 如果运行时间超过 10 秒;但是,我将运行 'ls | wc -l' 在多个目录上,如果只需要一秒钟即可完成,不想为每个目录等待 10 秒。
我已经尝试过,这似乎只是一种工作,但是当 'ls | wc -l' 在 10 秒睡眠前结束。
ls /file/path/to/count/ | wc -l &
pidsave=$!
sleep 1
if [ -e /proc/$pidsave ]; then
kill $pidsave; echo $?
echo 'ls command was timed out'
else
echo 'ls command completed'
fi
【问题讨论】: