zsh如果有帮助:如果ping不成功

Jam*_*mes 2 if-statement zsh ping

如果我连接到互联网,我想运行一个脚本.我想的方法是我每隔5分钟运行一次crontab,它会尝试ping到网络服务器,如果不成功则运行命令,如果成功,我希望它结束​​脚本.

伪代码:

#!/bin/zsh
if ping IP is unsuccessful
  echo test
end
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 5

ping根据成功情况设置退出状态.所以你可以这样做:

#!/bin/zsh
ping -c 1 myhost        # -c pings using one packet only
if [ $? -ne 0 ]; then
   echo "test"
fi
Run Code Online (Sandbox Code Playgroud)

请注意,如果命令遇到错误,命令将按照约定将其退出状态($?)设置为非零.

上述的另一个版本是:

#!/bin/zsh
if ping -c 1 myhost; then
   echo "test"
fi
Run Code Online (Sandbox Code Playgroud)

这更简洁.