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`
这样就能成功获取值了
查看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`
这样就能成功获取值了
相关文章推荐
- 编写一个SHELL脚本,可以获得指定目录下的所有文件及文件夹的大小。输出的样式与 ls -lh 命令相同。
- 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
- shell脚本wc命令详解!!需求输出结果
- shell实践(一)读取一个文件输出文件内容
- linux C程序中获取shell脚本输出(如获取system命令输出)
- 用shell命令读取与输出数据的代码
- shell脚本无法使用source的原因及解决方法
- shell脚本中的grep命令参数使用方法介绍(转载)
- LINUX下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
- 执行shell命令并读取执行结果——popen()的用法
- 从Linux程序中执行shell(程序、脚本)并获得输出结果
- shell脚本编程中的grep命令
- ubuntu12.04中shell脚本无法使用source的原因及解决方法
- inux C程序中获取shell脚本输出(如获取system命令输出)
- 统计python脚本中 shell命令输出文本的行数
- Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题
- 调用一个系统命令,并读取它的输出值(使用QProcess.readAll)
- linux C程序中获取shell脚本输出(如获取system命令输出)
- 【linux】Ubuntu中shell脚本无法使用source的原因及解决方法
- [shell-基础] 读取命令序列输出