Observe que, por PIPEser qualquer comando ou sequência de comandos, então:
if PIPE ; then
# do one thing if PIPE returned with zero status ($?=0)
else
# do another thing if PIPE returned with non-zero status ($?!=0), e.g. error
fi
Para o registro, [ expr ]é um shell embutido † abreviação de test expr.
Como grepretorna com status 0 no caso de uma correspondência e status diferente de zero no caso de nenhuma correspondência, você pode usar:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
Observe que o uso -lapenas se importa com o fato de o arquivo ter pelo menos uma correspondência (para que grepretorne assim que encontrar uma correspondência, sem continuar desnecessariamente analisando o arquivo de entrada).
† em algumas plataformas [ expr ]não é um embutido, mas um executável real /bin/[(cujo argumento último será ]), razão pela qual [ expr ]deve conter espaços em branco ao redor dos colchetes, e por que deve ser seguido por um da lista de comando separadores ( ;, &&, ||, |, &, nova linha)