如何使用for循环检查Linux中的安装点

时间:2019-07-05 19:42:25

标签: linux bash

我想编写一个Bash脚本,以检查安装点是否存在。如果确实如此,则执行“某事”,如果没有“睡眠5秒钟”。

我想编写一个for循环,这样,如果最初安装了它,我可以检查相同的条件,直到其成立为止

if mountpoint -q /foo/bar; then
   /etc/init.d/iptables
else 
   sleep 5
fi

如何编写for循环来检查挂载点,直到挂载点存在?

2 个答案:

答案 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的命令。