bash – 当输入不匹配时避免grep返回错误

前端之家收集整理的这篇文章主要介绍了bash – 当输入不匹配时避免grep返回错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在一个bash脚本中写一段代码来检查一个程序是否已经运行。
我有以下为了搜索bar是否正在运行
foo=`ps -ef | grep bar | grep -v grep`

grep -v grep

部分是确保在ps结果中不会考虑“grep bar”

当bar不运行时,foo正确为空。但我的问题在于脚本有这样的事实

set -e

这是一个标志,如果某些命令返回错误,则终止脚本。
事实证明,当bar不运行时,“grep -v grep”不匹配任何东西,grep返回一个错误。我尝试使用-q或-s但无济于事。

有什么解决方案吗?谢谢

当然:
ps -ef | grep bar | { grep -v grep || true; }

甚至:

ps -ef | grep bar | grep -v grep | cat

猜你在找的Bash相关文章