jueves, 24 de enero de 2019

Variables bash #2

Como dijimos en un post anterior, bash tiene multitud de variables internas que podemos usar en nuestros scripts.
En esta ocasión nos vamos a centrar en las variables relacionadas con el paso de parámetros a nuestro script.

Parámetros

En bash podemos hacer referencia a cada parámetro pasado a un script de forma individual mediante las variables $1, $2, etc, que corresponden con el primer parámetro, segundo parámetro, etc.
Veamos un ejemplo:
#!/usr/bin/env bash

echo -n "$1 x $2 = "
expr $1 \* $2
Obteniendo el siguiente resultado:
$ ./multiplica.sh 3 2
3 x 2 = 6

Nombre del script

Una de las variables que podemos usar es $0, que hace referencia al nombre de nuestro script:
#!/usr/bin/env bash

echo "$0 version 0.1"

echo -n "$1 x $2 = "
expr $1 \* $2
Obteniendo lo siguiente:
$ ./multiplica.sh 3 2
./multiplica.sh version 0.1
3 x 2 = 6

Unión de todos los parámetros

Hay otra variable de bash que devuelve una cadena de texto con todos los parámetros pasados a nuestro script. Se trata de la variable $* o $@.
#!/usr/bin/env bash

echo "$0 version 0.1"
echo "Parámetros pasados: $*"

echo -n "$1 x $2 = "
expr $1 \* $2
Y obteniendo la siguiente salida:
$ ./multiplica.sh 3 2
Parámetros pasados: 3 2
3 x 2 = 6

Número de parámetros

bash tiene una variable que indica el número de parámetros que nos han pasado. Se trata de la variable $#. Veamos un ejemplo:
#!/usr/bin/env bash

if [ $# -ne 2 ]
then
  echo "Error en el paso de parámetros."
  echo "Uso: $0 Num1 Num2"
else
  echo -n "$1 x $2 = "
  expr $1 \* $2
fi
Obteniendo las siguientes salidas por pantalla:
$ ./multiplica.sh 4
Error en el paso de parámetros.
Uso: ./multiplica.sh Num1 Num2
$ ./multiplica.sh 4 2 5
Error en el paso de parámetros.
Uso: ./multiplica.sh Num1 Num2
$ ./multiplica.sh 4 2
4 x 2 = 8

No hay comentarios:

Publicar un comentario