私は変数を持っていて、$foo="something"
使用したいと思います:
bar="foo"; echo $($bar)
「何か」を響かせる。
bash では、${!variable}
可変変数を使用するために使用できます。
foo="something"
bar="foo"
echo "${!bar}"
# something
eval echo \"\$$bar\"
それをするでしょう。
受け入れられた答えは素晴らしいです。ただし、@Edison は、配列に対して同じことを行う方法を尋ねました。トリックは、配列が「!」で展開されるように、「[@]」を保持する変数が必要なことです。変数をダンプするには、この関数を確認してください。
$ function dump_variables() {
for var in "$@"; do
echo "$var=${!var}"
done
}
$ STRING="Hello World"
$ ARRAY=("ab" "cd")
$ dump_variables STRING ARRAY ARRAY[@]
これは以下を出力します:
STRING=Hello World
ARRAY=ab
ARRAY[@]=ab cd
just として指定するとARRAY
、最初の要素が によって展開されたものとして表示され!
ます。フォーマットをARRAY[@]
指定すると、配列とそのすべての値が展開されます。