首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用BSD grep捕获标准输出(可能)

使用BSD grep捕获标准输出(可能)
EN

Stack Overflow用户
提问于 2016-01-22 02:47:09
回答 1查看 80关注 0票数 0

我正在尝试使用ifort -v命令提取fortran编译器的版本,然后使用grep检查版本。

然而,这并不起作用。

代码语言:javascript
运行
复制
%ifort -v
ifort version 16.0.1
%ifort -v | grep "version"
ifort version 16.0.1
%ifort -v | grep "xyz"
ifort version 16.0.1

无论我的模式如何,输出似乎都会打印出来。因此,为了测试它,我尝试了下面的重定向到null,但它仍然打印出来。看起来输出不会发送到stdout。

代码语言:javascript
运行
复制
%ifort -v > /dev/null
ifort version 16.0.1


%ifort -v 2>/dev/null
ifort: error #10236: file not found: '2'
ifort version 16.0.1

有没有可能我在shell中看到的信息实际上是由与当前正在执行的ifort命令不同的进程写入的,这就是我无法捕获它的原因?我如何捕获它并对其进行grep?

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 03:26:14

显然,ifort -v会写入stderr。在bash上,将stderr重定向到stdout有助于解决这一问题。然后,例如,可以使用ifort -v 2>&1 | awk '{ print $2}'来获得版本。

在(t)csh上将stderr重定向到stdout似乎不是trivialcsh系列shells也不是用于脚本编写well suited

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

https://stackoverflow.com/questions/34931900

复制
相关文章

相似问题

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