¿Cómo se pasa un argumento con nombre en un script de shell??

¿Cómo se pasa un argumento con nombre en un script de shell??
Los scripts de shell en Linux le permiten escribir programas con valores y programas con codificación dura que pueden tomar entradas de usuario en tiempo de ejecución. Estas entradas de usuario se conocen como parámetros o argumentos. Todos estamos generalmente familiarizados con transmitir argumentos normales a los scripts de shell. Sin embargo, a veces puede sentir la necesidad de pasar "argumentos nombrados" a sus scripts de shell. Este artículo le guiará más sobre cuáles son exactamente los argumentos y sus necesidades en los scripts de shell. Después de eso, compartiremos un extenso ejemplo de transmitir los argumentos con nombre a un script de shell en Ubuntu 20.04.

Argumentos nombrados en scripts de shell en Ubuntu 20.04

Por ahora, entendemos claramente que podemos escribir fácilmente tales scripts de shell en Ubuntu 20.04 que son capaces de tomar argumentos como entrada del usuario al ejecutar estos scripts desde el terminal. Sin embargo, un tipo diferente de argumentos conocidos como "argumentos con nombre" también se usa comúnmente dentro de los scripts de shell. Un argumento con nombre es el que está simbolizado por un par de "valor de nombre". Este par de "valor de nombre" se define dentro del script de shell, y el argumento correspondiente se pasa de la misma manera al ejecutar el script a medida que pasa los argumentos normales.

Entonces, ¿cuál es la importancia de usar los argumentos con nombre en scripts de shell?? Bueno, a veces, define los argumentos en sus scripts de shell, pero mientras ejecuta esos scripts, es posible que no necesite proporcionar todos esos argumentos. Los argumentos nombrados le permiten omitir los valores de tantos argumentos como desee mientras ejecuta su script. En ese caso, si hubiera utilizado los argumentos normales, su sistema habría transmitido un mensaje de error y no le habría permitido continuar con la ejecución de su script si hubiera omitido algún argumento predefinido dentro de su script.

Además, a veces, también puede cambiar el orden de pasar los argumentos mientras ejecuta un script de shell, yo.mi., Pase los argumentos en orden aleatorio en lugar del que se sigue mientras declara las variables dentro de su script de shell. Los argumentos nombrados le permiten hacer esto fácilmente, mientras que, por otro lado, si hubiera usado los argumentos normales en esta situación, entonces nuevamente, se habría generado un mensaje de error debido a no seguir el orden correcto de los argumentos. Por lo tanto, puede decir que los argumentos nombrados proporcionan más flexibilidad a los usuarios al tiempo que proporcionan entradas en lugar de restringirlos.

Ahora, cuando te das cuenta de la importancia de usar los argumentos con nombre en los scripts de shell, veamos cómo podemos usar estos argumentos dentro de un script de shell en un Ubuntu 20.04 sistema.

Ejemplo de aprobación de argumentos nombrados a un script de shell en Ubuntu 20.04

Por pasar argumentos nombrados a un script de shell en Ubuntu 20.04, hemos diseñado un script de shell que se muestra en la imagen a continuación. Ejecutaremos este script de shell con diferentes argumentos o valores de entrada en esta sección.

En este script de shell, hemos utilizado la función "getopts" incorporada en el shell dentro de un bucle de tiempo. Esta función básicamente toma parámetros nombrados como entrada del usuario. Entonces, hemos definido tres casos diferentes, yo.mi., "N, A y G" correspondiente a nuestras variables "Nombre, edad y género" respectivamente. Estos casos se definen con la variable de "indicador" sobre la cual se ejecutará nuestra declaración de casos-ESAC. La instrucción Case-ESAC en el shell es básicamente un equivalente de la instrucción Switch en C. Luego, dentro del bloque Case-SAC, hemos enumerado los tres casos que se declararon anteriormente, yo.mi., n, a y g. Contra cada caso, hemos declarado una variable que es igual al argumento proporcionado por el usuario como una entrada al ejecutar el script. Cada argumento proporcionado por el usuario se asignará a la variable relevante cada vez que se ejecute este script. Luego, finalmente tenemos tres comandos de "eco" que están allí para imprimir los valores del nombre de las variables, la edad y el género, respectivamente.

Después de diseñar este script, primero lo ejecutaremos con argumentos normalmente nombrados en el orden correcto de la siguiente manera:

$ Bash con nombre.sh -n aqsa -a 27 -g mujer

Aquí, llamado.SH representa el nombre de nuestro script de shell. Además, puede ver en este comando que hemos enumerado primero las banderas, seguidas de sus respectivos argumentos que se pasarán. Además, puede notar claramente que hemos aprobado estos argumentos en el orden exacto, ya que se definieron en nuestro script de shell.

Ahora, cuando se ejecute este script de shell, podrá ver los valores asignados a todos sus parámetros nombrados en el terminal, como se muestra en la imagen a continuación:

Una vez que hemos ejecutado este script en el flujo normal, podemos probar un pequeño experimento ejecutando este script de shell con los mismos valores de entrada pero en un orden ligeramente diferente, como se muestra en el siguiente comando:

$ Bash con nombre.sh -n aqsa -g femenino -a 27

Puede ver en este comando que hemos cambiado el orden de los argumentos de género y edad del que se definió inicialmente en el script de shell. Ahora, intentaremos averiguar si estos valores se asignan correctamente a nuestros argumentos nombrados o no.

Cuando se ejecute este comando, podrá ver desde su salida que, independientemente del orden en que se pasen los argumentos al ejecutar el script de shell, aún se asignarán a las variables correctas como se muestra en la imagen a continuación:

En algunas situaciones, un usuario podría no querer revelar su edad. En esa situación, él/ella ejecutará este script de shell de la siguiente manera:

$ Bash con nombre.sh -n aqsa -g hembra

En la salida de este script de shell, cuando se ejecuta con los argumentos mostrados anteriormente, puede ver claramente que nuestro sistema no ha generado ningún mensaje de error; más bien, ha ejecutado sin problemas nuestro script con los parámetros proporcionados mientras deja la variable de edad en blanco.

De la misma manera, también puede intentar omitir la variable de género mientras solo proporciona el valor para la variable de nombre de la manera que se muestra a continuación:

$ Bash con nombre.sh -n aqsa

La salida correspondiente para este comando se muestra en la siguiente imagen:

Finalmente, intentaremos ejecutar este script sin proporcionar ningún argumento de la siguiente manera:

$ Bash con nombre.mierda

Nuevamente, puede ver en la siguiente salida que no se genera ningún mensaje de error; Más bien, nuestro script se ha ejecutado con éxito incluso sin ningún argumento proporcionado.

Conclusión

Del ejemplo detallado discutido en este tutorial, podemos concluir que aún se ejecutará con éxito, independientemente del orden de los argumentos nombrados proporcionados a un script de shell. Además, incluso si no proporciona ningún argumento a su script, aún se puede ejecutar sin ningún error. Sin embargo, lo único que debe tener cuidado al pasar los argumentos nombrados es usar el indicador correcto seguido de su valor correspondiente al ejecutar su script de shell.