Você está misturando os comandos grep e egrep juntos e descartou o sinalizador -E
exigido para o grep, de modo que ele analisa |
como a expressão regular de alternância. Como alternativa, use o egrep até o final.
Use um destes:
ps -ef | egrep "string1|string2" | egrep -v "${variable}|string4|string5"
ou
ps -ef | egrep "string1|string2" | grep -Ev "${variable}|string4|string5"
... sendo cuidadoso em qualquer um para escapar de tokens de expressão regular em variable
(ou as várias cadeias de caracteresN, para esse assunto).
Veja também: Por que minha expressão regular funciona em X, mas não em Y?