我有以下情况:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
我有以下情况:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
如果计数不是变量,您可以使用大括号扩展:
如果计数是一个变量,您可以使用以下
seq
命令:有很多方法可以执行此循环。
使用
ksh93
语法(也支持zsh
andbash
):对于任何类似 POSIX 的 shell:
在再次测试文件的存在之前,两个循环在每次迭代中都休眠 10 秒。
循环完成后,您必须最后一次测试文件是否存在,以确定循环是由于运行 10 次还是由于文件出现而退出。
如果您愿意,并且您可以访问 inotify-tools,您可以将
sleep 10
调用替换为这将等待当前目录中发生文件创建事件,但会在 10 秒后超时。这样,一旦出现给定的文件名(如果出现),您的循环就会退出。
完整的代码,用(如果你不想要的话,
inotifywait
替换为),可能看起来像sleep 10
虽然
test -e file && exit
更灵活