这个while循环如何限制为最多10次重试?
#!/bin/sh
while ! test -d /somemount/share/folder
do
echo "Waiting for mount /somemount/share/folder..."
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 15
保持柜台:
#!/bin/sh
while ! test -d /somemount/share/folder
do
echo "Waiting for mount /somemount/share/folder..."
((c++)) && ((c==10)) && break
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
您还可以使用for
循环并在成功时退出:
for try in {1..10} ; do
[[ -d /somemount/share/folder ]] && break
done
Run Code Online (Sandbox Code Playgroud)
问题(也存在于其他解决方案中)是,一旦循环结束,您不知道它是如何结束的 - 目录是否找到,或者计数器是否耗尽?
小智 6
我想发表评论,但我没有足够的积分。无论如何我都想做出贡献。因此,即使 while 循环嵌套在另一个循环中,它也能正常工作。在中断之前,c 变量被重置为零。感谢 @anubhava 提出了最初的解决方案。
#!/bin/sh
while ! test -d /somemount/share/folder
do
echo "Waiting for mount /somemount/share/folder..."
((c++)) && ((c==10)) && c=0 && break
sleep 1
done
Run Code Online (Sandbox Code Playgroud)