2017-07-20 20 views
2

bashでは、他の変数から変数名を作成し、その変数の名前が変数である変数が定義されているかどうかを確認できますか?Bash変数の参照

a=foo 
b=f_$a 
if [ -n "${$b}" ] 

ここで、名前f_fooの変数を探しています。私はそれを行う可能性があります$ {$ bの}のようなものを考えたが、それは

+1

[Bashの動的変数名](https://stackoverflow.com/questions/16553089/dynamic-variable-names-in-bash)の可能な複製 – codeforester

+0

この質問の別の例があるはずです。しかし、リンクされた質問と回答は、別の変数を参照するただ1つの変数に焦点を当てていません。 (リンクでは、lsの出力から変数値を得ることに若干の注意が払われています) –

答えて

3

は何がしたいことはこれは変数間接ために固有の機能です${!var}のbash-ishm

b=b_foo 
b_foo=bar 
echo ${!b} 

のように見える悪い置換を提供します。


は、ksh93は、同様の機能typeset -nまたは異なる構文でそのエイリアスnamerefを持っています。

typeset -n b=b_foo 
b_foo=bar 
echo ${b} 

barでも同様である。

+1

'-n'は、' typeset '(または' declare')でもv4.3程度でbashで動作します – rici