空命令输出

时间:2018-04-03 17:56:01

标签: bash

我正在做一些bash脚本,并且想知道在bash脚本中运行命令时如何识别空输出或特定字符串输出。

示例 - 如果我对google.com执行ping操作,并且由于没有连接,我收到消息"没有到主机的路由",我希望程序回应"你做了一个boo boo"。

我尝试过:

if [[ "$(ping -c 1 -n -q $address | grep -q 'ping: sendto: No route to 
host')" > /dev/null ]]; 
then echo " Your server is up and working, please proceed to the next 
step"
elif [-n "$(ping -c 1 -n -q $address | grep -q 'ping: sendto: No route 
to host')" == *java* ];
then echo "Your server is down, please fix this issue"
else 
echo "No response"
fi

另外,看看实现这一目标的其他方法,但无法找到可行的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以查看grep的退出状态。 grep如果匹配,则退出0。

if ! ping -c 1 -n -q $address 2>&1 | grep -q 'ping: sendto: No route to host' > /dev/null
then
    echo " Your server is up and working, please proceed to the next step"
fi