Observe que, por PIPE
ser 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 grep
retorna 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 -l
apenas se importa com o fato de o arquivo ter pelo menos uma correspondência (para que grep
retorne 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)