配列の下に24個の要素の配列が格納されています拡張子。
echo ${mba_ext[13]} gives me expected results.
変数を作成しましたtemp="mba_ext"
ここで、temp 変数を利用して、配列の内容を別の配列にコピーしようとしています。次のようなコードを書きました。
new_array=$(eval echo '$'{${temp}[@]})
与えると、echo$new_array
インデックスなしで配列のすべての内容が印刷されます。
与えてもecho ${new_array[4]}
結果は得られません。理想的には、このコマンドはインデックス位置 4 のコンテンツを印刷するはずです。
誰か助けていただけませんか?
答え1
に基づくこの回答はSuper Userで。
[@]
適切な配列では変数間接参照を使用できます […]。注意すべき点は、間接参照する変数に配列要素 (またはすべての要素) を含める必要があることです。
使用した名前を含むサンプルコード:
mba_ext=('normal' 'with space' 'double"quote' "single'quote" $'new-\n-line' '\backslash')
temp="mba_ext"
temparray="${temp}[@]" # This includes the array name AND "[@]"
new_array=("${!temparray}")
printf '<%s>\n' "${new_array[@]}"