Scripts

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:

Luego de guardar los cambios y de darle permisos de ejecución al script podemos correrlo de la siguiente manera:

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!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *