Tenga en cuenta que, por PIPE
ser cualquier comando o secuencia de comandos, entonces:
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 el registro, [ expr ]
es una concha † abreviada para test expr
.
Dado que grep
devuelve el estado 0 en caso de una coincidencia, y el estado distinto de cero en caso de que no haya coincidencias, puede usar:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
Tenga en cuenta el uso del -l
cual solo le importa que el archivo tenga al menos una coincidencia (de modo que grep
regrese tan pronto como encuentre una coincidencia, sin continuar analizando innecesariamente el archivo de entrada).
† en algunas plataformas [ expr ]
no es una orden interna, sino un ejecutable real /bin/[
(cuyo argumento última será ]
), por lo que [ expr ]
debe contener espacios en blanco alrededor de los corchetes, y por qué debe ser seguido por uno de los separadores de lista de comandos ( ;
, &&
, ||
, |
, &
, nueva línea)