gpt4 book ai didi

bash - 创建一个 shell 脚本来检查网络连接

转载 作者:行者123 更新时间:2023-12-04 16:17:18 26 4
gpt4 key购买 nike

我正在制作一个运行无限循环的简单 shell 脚本,然后如果 ping 命令的输出包含“time”(表明它已成功 ping)它应该回显“已连接!”, sleep 1,然后清除。但是,我的脚本没有输出。

#!/bin/bash
while :
do
if [[ $(ping google.com) == *time* ]];
then
echo -en '\E[47;32m'"\033[1mS\033[0m"
echo "Connected!"
else
echo -en '\E[47;31m'"\033[1mZ\033[0m"
echo "Not Connected!"
fi
clear
sleep 1
done

最佳答案

您的脚本没有给出输出,因为 ping 永远不会终止。要让 ping 测试您的连接性,您需要为其提供运行计数 (-c) 和响应超时 (-W ), 然后检查它的返回码:

#!/bin/bash
while true
do
if ping -c 1 -W 5 google.com 1>/dev/null 2>&1
then
echo "Connected!"
break
else
echo "Not Connected!"
sleep 1
fi
done

ping 如果能够成功 ping 给定的主机名,将返回 0,否则返回非零值。

还值得注意的是,此循环的迭代将运行不同的时间段,具体取决于 ping 是快速成功还是失败,例如由于没有网络连接。您可能希望使用 timesleep 将迭代保持恒定的时间长度(例如 15 秒)。

关于bash - 创建一个 shell 脚本来检查网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com