BASHで変数を計算する関数

BASHで変数を計算する関数

変数名が与えられたら、その値を印刷する関数はありますか?

変数名を何度も bash 関数に渡し、変数を渡すときに拡張するのではなく、関数内で拡張したいと思います。もちろん、これは最終的に変数名を含む文字列を作成してexecを実行する必要があります。出力をエコーするコマンドを実行できれば、もっときれいになります!

答え1

show_val() { echo "${!1}"; }
foo=bar
echo $(show_val foo)   # => bar
# works with arrays too
a=(zero one two)
echo $(show_val a[1])  # => one

bashのマニュアルに文書化されています。ここ

答え2

「execの実行」に関する質問が何を意味するのかわかりません。おそらく評価を意味するようです。

show_val() { 評価エコー \$$1 }
金持ち=バー
show_val foo

関連情報