Obtener discusiones con banderas en Bash
Para obtener discusiones con Flags in Bash, puede usar el comando "getopts". El comando "getopts" es una función incorporada en BASH que se puede usar para analizar las opciones y argumentos de la línea de comandos. Se necesita Tres argumentos: la cadena de opciones, la variable para almacenar la opción actual, y el nombre de la variable para almacenar los argumentos restantes. Aquí hay un ejemplo:
#!/bin/bash
mientras que getopts ": x: y:" optar; hacer
caso $ opt en
X)
arg1 = "$ Optarg"
;;
y)
arg2 = "$ Optarg"
;;
\?)
echo "inválido: -$ optarg"> y 2
;;
:)
Opción echo " -$ Optarg requiere un argumento."> Y 2
;;
ESAC
hecho
Shift $ ((OptInd-1))
Echo "Argumento 1: $ Arg1"
Echo "Argumento 2: $ Arg2"
Aquí el comando "getopts" se usa para analizar las opciones de línea de comandos "-x" y "-y". El carácter ":" después de cada opción indica que la opción requiere un argumento y la variable "OPT" almacena la opción actual, y las variables "Arg1" y "Arg2" almacenan los argumentos correspondientes.
La instrucción "Case" se usa para manejar cada opción para que si la opción es "X", el argumento se almacena en "Arg1". Si la opción es "Y", el argumento se almacena en "Arg2".Se muestra un mensaje de error cuando se da una opción no válida, así como cuando no se da ningún argumento, incluso si una opción requiere una.
El OPTARG se utiliza para almacenar el valor del argumento que se pasa con las opciones -x o -y, mientras que OptInd -1 se usa para cambiar los parámetros posicionales para excluir las opciones y sus argumentos, dejando solo los argumentos de no opción.
Después de analizar las opciones, el comando "Shift" se usa para eliminar las opciones de la lista de argumentos. Esto asegura que los argumentos restantes se almacenen en la variable correcta.Para usar el script con banderas, puede ejecutar el script con las opciones y argumentos de la bandera, como este:
./- -
Conclusión
El uso de banderas para pasar argumentos opcionales a los scripts de BASH puede hacer que los scripts sean más flexibles y potentes y con el comando "getopts", puede analizar fácilmente los argumentos y las opciones de línea de comandos. Siguiendo el ejemplo en este artículo, puede implementar banderas en sus propios scripts bash y manejarlos con facilidad.