Я хочу написать в сценарии bash фрагмент кода, который проверяет, запущена ли уже программа. У меня есть следующее, чтобы найти, работает ли bar
foo=`ps -ef | grep bar | grep -v grep`
Часть
grep -v grep
предназначена для того, чтобы убедиться, что "grep bar" не учитывается в результатах ps
Когда bar не работает, foo правильно пусто. Но моя проблема заключается в том, что в сценарии есть
set -e
, который является флагом для завершения сценария, если какая-то команда возвращает ошибку. Оказывается, когда bar не работает, «grep -v grep» ни с чем не совпадает, и grep возвращает ошибку. Я пробовал использовать -q или -s, но безуспешно.
Есть ли какое-нибудь решение? Thx