【发布时间】:2015-12-26 00:55:15
【问题描述】:
我已经完成了一个名为 hosts.txt 的文件,其中包含一些网站,以使用脚本测试每个网站上的 ping。我想用我的脚本做的是我想遍历包含不同网站的每一行,它应该判断网站是打开还是关闭(通过测量每个网站上的 ping 命令)
我的问题是我真的不知道如何获取 ping 命令的返回值,所以如果网站启动,它应该说“找到网站名称”或未找到。我一直在研究,也试过了!命令和 if 语句中的不同方式,但它们似乎都不起作用。
我的代码:
#!/bin/bash
echo
echo "Monitoring hosts from file hosts.txt ..."
echo
echo
egrep -v '^(#|$)' hosts.txt | while read line; do #put the egrep value
#which is the lines in hosts.txt, and loop through each one of them
if [ ping $line ];then
echo "$line is up"
else
echo "$line is not up"
fi
done
echo
【问题讨论】:
-
那个副本是准确的,但也许有更好的副本? stackoverflow.com/questions/90418/… 和 stackoverflow.com/questions/9261397/… 似乎都更接近这个问题。如果有一个规范的答案,我会投票给这个:stackoverflow.com/questions/5163144/…
标签: bash if-statement return-value