Publi

[Bash] Llamar a una variable cuyo nombre lo contiene otra variable

numbers

Imaginemos el caso en que tenemos tres variables (ROJO=5 ; VERDE=6 ; AZUL=7), y una función a la que le pasaremos el nombre del color y nos devolverá su valor (así visto parece tontería, pero luego podremos normalizarlo, aclararlo, oscurecerlo, etc).

1
2
3
4
5
6
7
8
9
10
ROJO=5
VERDE=6
AZUL=7

function get_color()
{
   echo ${!1}
}

get_color ROJO

Efectivamente si en Bash escribimos ${!VARIABLE} no nos devuelve el nombre que contiene la variable, sino que devuelve el valor de la variable cuyo nombre es $VARIABLE.

Otro ejemplo, quizás un poco más claro:

1
2
3
4
5
6
7
MALAGA=568507
SEVILLA=703021
HUELVA=149410

MICIUDAD=MALAGA

echo ${!MICIUDAD}

Tenemos tres ciudades, Málaga, Sevilla y Huelva, cada una con su variable y su valor (la población extraída de la Wikipedia), por otro lado tenemos la variable MICIUDAD cuyo valor será una de las tres ciudades. Ahora, queremos saber la población de MICIUDAD, pues debemos acceder a la variable $MALAGA para ello con el operador ${!VARIABLE} lo hacemos de forma sencilla.

También podría interesarte...

Only 1 comment left Ir a comentario

  1. Pingback: Bitacoras.com /

Leave a Reply