我正在使用以下代码与 if then 进行安装。它适用于某些 IP,但不适用于某些 IP,尤其是 FAILURE 语句。
这是代码
is_mounted() {
mount | grep -qohw "$1"
}
{
pass=
for ip in 123.456.789 223.456.789
do
if is_mounted "$ip"
then
echo -e " STACK MOUNT \e[1;33mALREADY\e[00m AVAILABLE \e[1;33mPASSED\e[00m "
pass=1
break
fi
mount -t nfs -o ro,nolock "$ip:/opt/media/" /mount/stack &>/dev/null
if is_mounted "$ip"
then
echo -e " STACK MOUNT AVAILABLE \e[1;33mPASSED\e[00m "
pass=1
break
fi
done
[ "$pass" ] || echo -e " STACK MOUNT NOT AVAILABLE \e[00;31mFAILED\e[00m"
} | tee /tmp/log
这些是出现故障的 IP 139.41.170.10、197.21.82.10、139.41.170.11、197.21.82.11、139.31.125.11。理想情况下应该适用于任何 IP。我也想使用所有这些IP'对于 139.41.170.10 197.21.82.10 139.41.170.11 197.21.82.11 139.31.125.11 的 IP'。任何 AWK 建议。
答案1
在您的is_mounted
函数中,您应该测试 的输出mount
以确认返回了某些内容,然后相应地返回 0 或 1。
另外,我强烈鼓励您使用内置的调试工具bash
。您很快就会发现出了什么问题,而不是让我们尝试调试它。
set -x
只需在要调试的代码块的开头放置一个,当您想禁用它时,即可set +x
。
例子
... some code ...
set -x
... code to debug ...
set +x
... more code ...