stringa - while bash




Come utilizzare il valore di una variabile come nome di un'altra variabile in bash (4)

È possibile assegnare un valore a una variabile utilizzando l'assegnazione semplice utilizzando un valore da un'altra variabile in questo modo:

#!/usr/bin/bash

#variable one
a="one"

echo "Variable a is $a"
#variable two with a's variable
b="$a"

echo "Variable b is $b"

#change a
a="two"
echo "Variable a is $a"
echo "Variable b is $b"

L'output di questo è questo:

Variable a is one
Variable b is one
Variable a is two
Variable b is one

Quindi assicurati di assegnarlo in questo modo b = "$ a" e dovresti essere bravo.

Questa domanda ha già una risposta qui:

Voglio dichiarare una variabile, il cui nome deriva dal valore di un'altra variabile, e ho scritto la seguente parte di codice:

a="bbb"
$a="ccc"

ma non ha funzionato. Qual è il modo giusto per fare questo lavoro?


Potresti fare uso di eval per questo.
Esempio:

$ a="bbb"
$ eval $a="ccc"
$ echo $bbb
ccc

Spero che questo ti aiuti!


Questo potrebbe funzionare per te:

foo=bar
declare $foo=baz
echo $bar
baz

o questo:

foo=bar
read $foo <<<"baz"
echo $bar
baz

Se si desidera ottenere il valore della variabile anziché impostarlo, è possibile farlo

var_name1="var_name2"
var_name2=value_you_want
eval temp_var=\$$var_name1
echo "$temp_var"

Puoi leggere qui riferimenti indiretti .





bash