Bash getopts comando incorporado

comando getopts

En Tipo Unix sistemas operativos, getopts es un comando incorporado del Intento cáscara. Analiza las opciones y los argumentos de los comandos, como los que se pasan a un shell texto .

Descripción

getopts es la versión bash de otra herramienta del sistema, coronado . Observe que el comando bash tiene un s al final, para diferenciarlo del comando del sistema.



Mientras que la coronado la herramienta del sistema puede variar de un sistema a otro, bash getopts está definido por el estándar POSIX. Entonces, si escribe un script usando getopts , puede estar seguro de que se ejecuta en cualquier sistema que ejecute bash en modo POSIX (por ejemplo, colocar -el posix ).

getopts analiza opciones cortas, que son un solo guión (' - ') y una letra o un dígito. Ejemplos de opciones cortas son -2 , -D , y -D . También puede analizar opciones cortas en combinación, por ejemplo -2dD .

Sin embargo, getopts no se pueden analizar opciones con nombres largos. Si quieres opciones como --verboso o --ayuda , usar coronado en lugar de.



Sintaxis

|_+_|

Cómo funciona

getopts procesa el parámetros posicionales del comando principal. En bash, esto se almacena en la variable de shell ' [correo electrónico protegido] '. Entonces, si ejecuta este comando:

cómo vaciar la papelera de reciclaje
|_+_|

Durante el tiempo que mycmd está corriendo, la variable [correo electrónico protegido] contiene la cadena ' -a argument1 -b argument2 '. Puedes usar getopts a analizar gramaticalmente esta cadena para opciones y argumentos.

Cada vez que ejecuta getopts, busca una de las opciones definidas en optstring . Si encuentra una, coloca la letra de la opción en una variable llamada optname . Si la opción no coincide con las definidas en optstring , getopts establece la variable optname a un signo de interrogación (' ? ').



Si la opción espera un argumento, getopts obtiene ese argumento y lo coloca en $ OPTARG . Si no se encuentra un argumento esperado, la variable optname se establece en dos puntos (' : '). Luego, Getopts incrementa el índice posicional, $ OPTIND , que indica la siguiente opción a procesar.

La opción especial de dos guiones (' -- ') es interpretado por getopts como el final de las opciones.

getopts está diseñado para ejecutarse varias veces en su secuencia de comandos, en un bucle, por ejemplo. Procesa una opción por iteración de bucle. Cuando no haya más opciones para procesar, getopts devuelve falso, que termina automáticamente un tiempo círculo. Por esta razón, getopts y tiempo se utilizan con frecuencia juntos.

Especificando la cadena de opciones

optstring es un cuerda que define qué opciones y argumentos getopts buscar. Por ejemplo, en esta llamada a getopts:

cómo restablecer la contraseña del BIOS
|_+_|

Las opciones que espera getopts son -a , -pag , y -CON , sin argumentos. Estas opciones se pueden combinar en cualquier orden como -la , -Bien , -Borrar , etc.

Digamos que le gustaría el -a y -CON opciones para tomar argumentos. Puede especificar esto poniendo dos puntos (' : ') después de esa opción en optstring . Por ejemplo:

|_+_|

Ahora puede especificar argumentos a la -a y -CON opciones como -a argument1 -pZ argument2 . La -pag La opción no puede aceptar argumentos, porque no hay dos puntos después de la pag en optstring .

Nota

Hay dos caracteres reservados que no se pueden utilizar como opciones: los dos puntos (' : ') y el signo de interrogación (' ? ').

Comprobación detallada de errores

Por defecto, getopts informará de un error detallado si encuentra una opción desconocida o un argumento fuera de lugar. También establece el valor de optname a un signo de interrogación (' ? '). No asigna un valor a $ OPTARG .

¿Dónde está el panel de control en Windows 7?

Si la opción es válida pero no se encuentra un argumento esperado, optname se establece en ' ? ', $ OPTARG no está configurado y se imprime un mensaje de error detallado.

Comprobación silenciosa de errores

Sin embargo, si coloca dos puntos al comienzo de la optstring , getopts se ejecuta en 'modo silencioso de comprobación de errores'. No informará ningún error detallado sobre opciones o argumentos, y debe realizar una verificación de errores en su secuencia de comandos.

En modo silencioso, si una opción es inesperada, getopts establece optname a ' ? ' y $ OPTARG al carácter de opción desconocida.

cómo grabar en youtube

Si la opción está bien pero no se encuentra un argumento esperado, optname está configurado en un colon (' : ') y $ OPTARG se establece en el carácter de opción desconocido.

Especificar argumentos personalizados

Usualmente querrás getopts para procesar los argumentos en [correo electrónico protegido] , pero en algunos casos, es posible que desee proporcionar argumentos manualmente para que getopts los analice. Si es así, puede especificar estos argumentos como el argumento final de la getopts mando.

Ejemplos de

Aquí hay un script bash usando getopts . El guión imprime un saludo, con un nombre opcional, un número variable de veces. Se necesitan dos opciones posibles: -norte NOMBRE y -t VECES .

|_+_|

Si este script se llama saludo , así es como se ve la salida con diferentes opciones:

|_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_| |_+_|

tiempo - Ejecuta un conjunto de acciones mientras una determinada condición es verdadera.