Запретить grep возвращать ошибку, когда ввод не соответствует

Я хочу написать в сценарии 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

64
задан C.d. 24 August 2017 в 14:55
поделиться