En el medio de un script, quiero verificar si se pasó un indicador determinado en la línea de comando. A continuación se hace lo que yo quiero, pero parece feo:Manera correcta de buscar un indicador de línea de comando en bash
if echo $* | grep -e "--flag" -q
then
echo ">>>> Running with flag"
else
echo ">>>> Running without flag"
fi
¿Hay una mejor manera?
Nota: explícitamente no quiero quiero enumerar todos los indicadores en un interruptor/getopt. (En este caso, cualquiera de estos elementos se convertiría en la mitad o más de la secuencia de comandos completa. También los cuerpos de if si establecen un conjunto de vars)
Es mejor usar el 'getopts' incorporado en lugar del' getopt' externo. –
@Dennis: 'getopts' admite nombres de opciones largos como' --flag'? – indiv
@indiv: Oh, lo siento, pasé por alto ese requisito. Usaría una declaración 'case' antes de usar' getopt'. Ver [esto] (http://aplawrence.com/Unix/getopts.html) para una comparación de 'getopt' y' getopts'. –