現在、入力文字列を受け取って定義された配列名として使用するスクリプトを作成しています。ユーザからの入力が「A」である場合しかし、私はこれで立ち往生、おかげで事前BASHで定義された配列名としての入力文字列について
a=(1 2 3)
b=(4 5 6)
c=(7 8 9)
に、私はresult_arrayは、(1 2 3)のようになりますしたいですか?
a=(1 2 3); b=(4 5 6); input="a"; result_array=("${${input}[@]}"); echo ${result_array[@]}
bash: ${${input}[@]}: bad substitution
私が欲しいのは、次のとおりです。result_array=("${${input}[@]}") => result_array=("${a[@]}") = (1 2 3)
注:私は、 "入力= AまたはBまたはCの場合、result_array = AまたはBまたはC" のようなIF文私がしなければならないので、使用したいいけませんこのステップを何度もやりなさい。
偉大
declare -n input=b
使用indirect expansionを使用する必要があります!それだけが必要。ありがとうございます –