Au milieu d'un script, je veux vérifier si un drapeau donné a été passé sur la ligne de commande. Ce qui suit fait ce que je veux, mais semble laid:Correct façon de vérifier un drapeau de ligne de commande dans bash
if echo $* | grep -e "--flag" -q
then
echo ">>>> Running with flag"
else
echo ">>>> Running without flag"
fi
Y at-il une meilleure façon?
Remarque: Je explicitement ne pas voulez lister tous les indicateurs dans un commutateur/getopt. (Dans ce cas, toutes ces choses deviendraient la moitié ou plus du script complet, ainsi que les corps du si juste définir un ensemble de variables)
Il est préférable d'utiliser le 'getopts' intégré plutôt que le' getopt' externe. –
@Dennis: 'getopts' prend en charge les noms d'option longs comme' --flag'? – indiv
@indiv: Oh, désolé, j'ai négligé cette exigence. J'utiliserais une instruction 'case' avant d'utiliser' getopt'. Voir [this] (http://aplawrence.com/Unix/getopts.html) pour une comparaison de 'getopt' et' getopts'. –