ある変数Aが別の変数Bの中に入っている(ネスト)状態で、Aの値を変更した際の動作について、お伺いしたいことがございます。
お手数ですが、下記ご確認のほどお願い致します。
#前提・実現したいこと
・入れ子状態(B=${A})の変数のうち、元の変数Aの値を変更した際、先となる変数Bを展開した時の値に、変更後の値が入っている状態にしたい。
#発生している問題・エラーメッセージ
変数Aの値が更新されていない。
#該当のソースコード
bash
11 VAR1="aaa" 22 VAR2="${VAR1}_bbb" 33 echo ${VAL2} #aaa_bbbと出力される 44 VAR1="bbb" 55 echo ${VAL2} #bbb_bbbと出力されず、aaa_bbbとなる
#試したこと
echoの前にもう一度VAR2の宣言をしたところ実現しました。(後述)
ただし、現在作成しているスクリプトでは、VAR2にあたる変数が複数存在し、VAR1の値が変わるたびに再宣言しなくてはいけないので、
より容易に同じ効果のある方法があれば、ご教示のほどお願い致します。
bash
11 VAR1="aaa" 22 VAR2="${VAR1}_bbb" 33 echo ${VAL2} #aaa_bbbと出力される 44 VAR1="bbb" 55 VAR2="${VAR1}_bbb" #同じ値を再宣言する 66 echo ${VAL2} #bbb_bbbと出力される
#補足情報(FW/ツールのバージョンなど)
Red Hat Enterprise Linux Server release 7.5 (Maipo)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/08 04:43