我正在尝试从bash脚本中的ping获取成功和失败的响应,但到目前为止还不能。
我的代码是这样的.
ping_results=$(ping -c 4 -q google.com)当ping成功时,这会起作用,但如果我没有internet连接,则会得到结果
ping: unknown host google.com它被打印到控制台,并且我的脚本显示为退出。
我希望ping结果或错误都存储在ping_results变量中。
任何帮助都将不胜感激。
发布于 2013-03-17 07:19:25
好的,对您的问题的简单回答是将stderr重定向到stdout。正如Fredik Phil在评论中提到的那样。
而不是:
ping_results=$(ping -c 4 -q google.com);使用:
ping_results=$(ping -c 4 -q google.com 2>&1);或者类似的东西。
但是,根据您正在执行的操作,测试ping命令的退出代码是否为1(表示ping以错误结束)或0(表示ping成功)可能更好。退出代码存储在变量"$?“中。
https://stackoverflow.com/questions/15455680
复制相似问题