Saludos
Estoy aprendiendo bash. Estoy escribiendo un script que toma como primer parámetro posicional ($1) el nombre de una variable. Como puedo hacer que el script imprima dicha variable?
ejemplo:
script: #!/bin/bash variable1=hola variable2=hello ## Aquí está el problema, necesito que el script imprima la variable cuyo nombre ## es $1. Algo como echo ${$1} pero que funcione jeje
...De modo a conseguir esto en la línea de comandos
$ script variable1 hola $ script variable2 hello
¿Cómo puedo conseguir el resultado de una variable cuyo nombre es el resultado de otra variable? :s
¡Gracias por sus respuestas!
PD: Si no se puede, he pensado crear un archivo de configuración con las variables. Entonces buscaría por $1 en el archivo y gracias a la expansión de parámetros obtendría el resultado de la variable cuyo nombre es $1...
No se si te pillo A ver
No se si te pillo
A ver esto:
variable1=hola
variable2=$variable1
echo $variable2
Un saludo
http://www.digiproyect.com
Hola Paulo_Jorge No se si te
Hola Paulo_Jorge
No se si te pillo yo tampoco pero yo diria ke algo como esto?:
Suerte a ver ke tal, ya contaras
mas o menos
uhh soy un lío explicándome...
El comportamiento en si sería ese... Pero imagina que tienes una lista enooorme de variables. EL script tendría que tener un case igual de enorme.
¿No se puede hacer que bash imprima directamente la variable cuyo nombre es el argumento $1?
Algo como echo ${$1}, o sea, imprimir la variable ${variable} de nombre $1 => ${$1}...
Es que creo que no se puede hacer... que yo sepa de la forma que he mencionado no se puede...
saludos y gracias por las respuestas :)
No me he explicado bien
No me he explicado bien jeje
Lo que quiero es que el usuario pueda elegir qué variable imprimir (variable1 o variable2) desde la línea de comandos. Para ello, da el nombre de la variable como argumento al comando...
El comportamiento sería similar a este ejemplo:
...Pero sin tener que utilizar arrays, imprimiendo directamente el resultado de la variable cuyo nombre es el argumento $1...
algo como...
En fin... espero haberme hecho entender un poco mejor jeje
¿Se puede hacer eso?
saludos
A ver si es esto
#!/bin/bash
echo "Elige 1 o 2"
read opcion
variable1="hola"
variable2="hello"
if [ $opcion -eq 1 ];
then
echo $variable1
elif [ $opcion -eq 2 ];
then
echo $variable2
else
echo "valor no valido"
fi
http://www.digiproyect.com
No importa
Utilizaré grep y un archivo con las variables:
Lo más probable es que no se pueda hacerlo como yo quería. De todas maneras, no se me ocurría ninguna solución.
Así que, muchas gracias por intentarlo :)
Saludos!
A ver, que tal esto: Haciendo
A ver, que tal esto:
Haciendo uso de funciones.
Resultado:
disculpa que conteste tan tarde, y suerte con tus scripts!
Saludos!
void hey(int x,int y)
{
if (x && y)
printf("http://libertadhack.blogspot.com/");
else
printf("http://libertadpunk.blogspot.com/");
}
Pasar nombre de variable como parámetro
Supongamos que tenemos un script llamado variables.sh en el que hay multitud de variables.
Ahora llamamos al script con un parámetro que es el nombre de una de esas variables:
Resultado:
Espero que esto resuelva tu problema
Otra posible solucion
Mediante la funcion eval http://www.unix.com/man-page/posix/1posix/eval/
#!/bin/bash
variable1=hola
variable2=hello
x=$1
nombre='$'$x
eval valor='$'$x
echo $nombre=$valor
Saludos