我想编写一个Bash脚本,以检查安装点是否存在。如果确实如此,则执行“某事”,如果没有“睡眠5秒钟”。
我想编写一个for循环,这样,如果最初安装了它,我可以检查相同的条件,直到其成立为止
if mountpoint -q /foo/bar; then
/etc/init.d/iptables
else
sleep 5
fi
如何编写for循环来检查挂载点,直到挂载点存在?
答案 0 :(得分:0)
这是一种方法:
mnt_path=/mnt/
while ! mountpoint -q "$mnt_path"; do
# mountpoint does not exist
sleep 5
done
# while loop exited, meaning mount point now exists
cat /etc/init.d/iptables
我建议引入超时。
答案 1 :(得分:0)
如果您的目标是推迟启动iptables直到挂载点存在,则可以执行以下操作:
while ! mountpoint -q /foo/bar; do
sleep 5
done
/etc/init.d/iptables
循环条件是mountpoint -q /foo/bar
的返回码,对于不存在的安装,返回码为1
,对于现有的安装,返回码为0
。循环将继续进行,直到mountpoint
返回0
(表示安装点已存在),然后将运行下一个启动iptables的命令。