Argumentos posicionales en scripts: uso con Bash

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):

Uso de los argumentos posicionales en un script
Figura 1 – Uso de los argumentos posicionales en un script

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!