Prévenir grep retourner une erreur lors de la saisie ne correspond pas à

Je veux écrire dans un script bash un morceau de code qui vérifie si un programme est déjà en cours d'exécution.
J'ai le texte suivant dans le but de rechercher si la barre est en cours d'exécution

 foo=`ps -ef | grep bar | grep -v grep`

La

 grep -v grep

partie est de veiller à ce que le "grep bar" n'est pas pris en compte en ps des résultats

Lorsque la barre n'est pas en cours d'exécution, foo est bien vide. Mais mon problème réside dans le fait que le script a

 set -e

qui est un indicateur de terminer le script si certains de commande retourne une erreur.
Il s'avère que lorsque la barre n'est pas en cours d'exécution, "grep -v grep" ne correspond pas avec n'importe quoi et grep renvoie une erreur. J'ai essayé d'utiliser -q ou -s, mais en vain.

Est qu'il ya une solution pour cela? Thx

  • Notez que set -e n'est pas bash-spécifique, mais plutôt s'applique à tout compatible POSIX shell (sh etc.)