您的位置:首页 > 运维架构 > Shell

shell 脚本中,grep无法读取前一个命令结果输出的一个原因

2017-12-20 17:05 1541 查看
前几天,因为要实现一个小功能,想用shell脚本来写点逻辑。遇到一个问题这里记录分享一下:

查看so文件中是否有未实现的函数,使用ldd查看,结果如下:



我想通过获取ldd -r命令的结果中是否存在“undefined symbol"这样的结果。很自然会想到使用grep来获取

便这样来写:check_res=`ldd -r name.so|grep undefine`

结果变量check_res死活就是一个空值,一直在查是什么原因。

最后发现,管道传给grep的数据,只有标准输出,而undefined symbol数据是在错误输出中。

所以解决办法是需要将标准错误重定向到标准输出中,才能获取结果值。

如下写法:

check_res=`ldd -r name.so 2>&1|grep undefine`

这样就能成功获取值了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: