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

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

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


我想通过获取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`

这样就能成功获取值了

相关文章:

  • 2021-06-07
  • 2022-01-08
  • 2021-12-05
  • 2021-12-04
  • 2021-12-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
  • 2021-05-20
  • 2022-02-01
相关资源
相似解决方案