Notez que, pour PIPE
étant toute commande ou une séquence de commandes, puis:
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
Pour l'enregistrement, [ expr ]
est une commande interne du shell† raccourci pour test expr
.
Depuis grep
revient avec l'état 0 dans le cas d'une correspondance, et de l'état différent de zéro en cas de non-correspondances, vous pouvez utiliser:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
Notez l'utilisation de l' -l
qui se soucie uniquement de l'un fichier ayant au moins un match (de sorte que l' grep
retourne dès qu'il trouve une correspondance, sans inutilement en continuant à analyser le fichier d'entrée.)
†sur certaines plateformes [ expr ]
n'est pas un builtin, mais une réelle exécutable /bin/[
(dont le dernier argument sera ]
), c'est pourquoi [ expr ]
devrait contenir d'espaces autour de la place des crochets, et pourquoi il doit être suivi par l'un de la liste des commandes séparateurs (;
, &&
, ||
, |
, &
, retour à la ligne)