首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本将命令的所有输出赋值给变量

Bash脚本将命令的所有输出赋值给变量
EN

Stack Overflow用户
提问于 2013-03-17 06:54:18
回答 1查看 4.8K关注 0票数 1

我正在尝试从bash脚本中的ping获取成功和失败的响应,但到目前为止还不能。

我的代码是这样的.

代码语言:javascript
复制
ping_results=$(ping -c 4 -q google.com)

当ping成功时,这会起作用,但如果我没有internet连接,则会得到结果

代码语言:javascript
复制
ping: unknown host google.com

它被打印到控制台,并且我的脚本显示为退出。

我希望ping结果或错误都存储在ping_results变量中。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-17 07:19:25

好的,对您的问题的简单回答是将stderr重定向到stdout。正如Fredik Phil在评论中提到的那样。

而不是:

代码语言:javascript
复制
ping_results=$(ping -c 4 -q google.com);

使用:

代码语言:javascript
复制
 ping_results=$(ping -c 4 -q google.com 2>&1);

或者类似的东西。

但是,根据您正在执行的操作,测试ping命令的退出代码是否为1(表示ping以错误结束)或0(表示ping成功)可能更好。退出代码存储在变量"$?“中。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15455680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档