O comando grep recebe dois argumentos: padrão e arquivo . O arquivo pode ser omitido se a entrada estiver conectada a stdin com o canal | ou o redirecionamento < . Em seus exemplos, esse não é o caso, portanto, o primeiro grep não sabe onde procurar por padrão. Você precisaria escrever:
grep -x $idle Event.log | grep -x $dead | grep -x $busy
Observe que o segundo e o terceiro grep s não precisam de argumento de arquivo ao ler o pipe.
No entanto, no seu caso, acho que você prefere procurar três strings alternativas. Assim, você pode usar o operador alternativo | com grep -E ou \| sem -E , por exemplo:
if grep -x "$idle\|$dead\|$busy" ./Event.log >/dev/null
then
echo " Events are running Successfully" >> ./Event.log
else
echo "One or more Events are down. Check the log and restart the Events." >> ./Event.log
fi