Una consideración importante a tener en cuenta al desarrollar un script es que debe poder usarse sin cambios en diferentes escenarios. Por eso, debe aceptar distintos valores de entrada y operar sobre los mismos sin inconvenientes. A dichos valores por lo general los llamamos argumentos posicionales del script. En este post aprenderemos cómo hacer referencia a los mismos desde el código.
A fines prácticos, los términos argumentos posicionales y parámetros de posición representan lo mismo.
Argumentos posicionales
Para empezar, hagamos una lista de las variables asociadas con los valores de entrada suministrados a un script
Variable |
Contenido |
$0 |
Nombre del script |
$n |
El parámetro n-ésimo pasado al script (hasta 9) |
$# |
Cantidad total de parámetros pasados al script |
$* |
Todos los parámetros, expresados como un solo valor |
$@ |
Todos los parámetros, expresados de forma separada |
A continuación, ilustremos con un ejemplo mediante un script llamado prueba.sh:
#!/bin/bash NOMBRE_SCRIPT=$0 PRIMER_PARAMETRO=$1 SEGUNDO_PARAMETRO=$2 TERCER_PARAMETRO=$3 CANT_PARAMETROS=$# TODOS_JUNTOS=$* TODOS_SEPARADOS=$@ echo "El nombre del script es $NOMBRE_SCRIPT. El valor del primer parametro es $PRIMER_PARAMETRO, el del segundo es $SEGUNDO_PARAMETRO, y el del tercero es $TERCER_PARAMETRO. Como podemos ver, hay un total de $CANT_PARAMETROS parametros. Todos ellos juntos se pueden expresar como $TODOS_JUNTOS, mientras que de forma separada sus valores son $TODOS_SEPARADOS."
Luego de guardar los cambios y de darle permisos de ejecución al script podemos correrlo de la siguiente manera:
./prueba.sh Fulano Mengano Suntano
Finalmente, en la Fig. 1 podemos ver el mensaje mostrado por pantalla (no se muestra todo por razones de espacio):
La diferencia entre $* y $@ es que en este último podemos iterar sobre los valores devueltos, mientras que en el primero no al constar de un solo valor. Mediante el uso de estos y de las demás variables que representan los argumentos posicionales podremos adaptar nuestros scripts a una gran variedad de escenarios.
Espero que este post les haya resultado útil. ¡Nos leemos en el próximo!
Te invitamos a conocer la propuesta completa de Carrera Linux Argentina para convertirte en un experto y completo sysadmin desde cero. En nuestro sitio web Aprender Linux podrás encontrar más detalles y contactarnos si te surgen preguntas o dudas. ¡Esperamos tu consulta!