¿Se puede usar la función bash "getopts" dos veces en el mismo script?
Tengo un conjunto de opciones que significaría diferenteCosas dependiendo del valor de una opción específica. Como no puedo garantizar que getopts evalúe primero esa opción específica, me gustaría ejecutar getopts una vez, usando solo esa opción específica, y luego ejecutarlo una segunda vez usando las otras opciones.
Respuestas
4 para la respuesta № 1Sí, solo reinicie OPTIND después.
#!/bin/bash
set -- -1
while getopts 1 opt; do
case "${opt}" in
1) echo "Worked!";;
*) exit 1;
esac
done
OPTIND=1
set -- -2
while getopts 2 opt; do
case "${opt}" in
2) echo "Worked!";;
*) exit 1;
esac
done
1 para la respuesta № 2
getopts no modifica los argumentos originales, a diferencia del antiguo archivo ejecutable independiente getopt. Puede usar los getopts integrados de bash una y otra vez sin modificar su entrada original.
Vea la página de manual de bash para más información.
HTH.
aclamaciones,
Robar