Saltar a contenido

Argumentos.

Un argumento es un parámetros que se le pasa a una función o a un programa. Es decir, son variables de entrada. Puede haber más de uno o ninguno.

Script con argumentos

./script.sh arg1 arg2 arg3 … argN

Ejemplo:

Ejecutamos el mismo script con diferentes argumentos, dando salidas distintas.

  • Se puede acceder al contenido de cada uno de los argumentos usando $X donde “X” es la posición del argumento (primero, segundo, tercero, ...).

  • $0: Es el nombre del script.

  • $*: Una lista con todos los argumentos.

  • $#: Número de argumentos.

  • shift: Elimina el argumento uno ($1) y promueve una posición al resto de argumentos, es decir, lo que antes era $2 ahora será $1.

Ejemplo 1.

Script con argumentos

./soyUnScript.sh salva 1010 "Salva Serrano" /home/Salva /bin/bash
Variable
Contenido
Significado
$0 soyUnScript.sh Nombre/ruta con la que se ejecutó el script.
$1 salva Primer argumento.
$2 1010 Segundo argumento.
$3 Salva Serrano Tercer argumento.
$4 /home/Salva Cuarto argumento.
$5 /bin/bash Quinto argumento.
$* salva 1010 "Salva Serrano" /home/Salva /bin/bash Lista de argumentos.
$# 5 Número de argumentos.
  • Los argumentos van separados por espacios y en caso de insertar un metacaracter, como por ejemplo asterisco (*), es necesario escaparlo con \:

Escapar carácteres especiales

./soyUnScript.sh 5 \* 10

Ejemplos de $#.

if [ $# -eq 3 ]
then
        echo "Se han insertado 3 argumentos."
else
        echo "Por favor, inserte 3 argumentos."
fi
if [ $# -ne 2 ]
then
    echo "Uso: $0 usuario directorio"
    exit 1
fi
¿Para qué utiliza exit 1?

Para indicar que el script ha finalizado en error, es lo que recoge $?

Ejemplo Shift.

Se puede observar como $1 va a ir valiendo cada uno de los argumentos.

echo "El primer argumento es: $1"
shift
echo "Ahora el primer argumento es: $1"
shift
echo "Ahora el primer argumento es: $1"

Vídeos de Ejemplo.

  1. Ejemplos de Argumentos.