我想在一个bash脚本中写一段代码来检查一个程序是否已经运行。
我有以下为了搜索bar是否正在运行
我有以下为了搜索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