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
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
| Variable | 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
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"