簡単な質問です
私はいくつかの配列を持っています:
array_0=(1 2 3)
array_1=(1 2 3)
.......
私は変数を持っています:
a=0
echo ${array_"$a"[0]}
不適切な置換エラーが発生しました。誰かが正しい構文を知っていますか?
できることの 1 つは、次の構文を使用することです。
array_a=array_$a[0]
echo ${!array_a}
最初の!
文字 as は、変数を評価し、結果を式として使用することにより、追加レベルの間接参照を使用することを示します。
使用できますeval
:
#!/bin/bash
array_0=(1 2 3)
array_1=(4 5 6)
array_2=(7 8 9)
for a in {0..2} ; do
for i in {0..2} ; do
eval 'echo ${'"array_$a[$i]"'}'
done
done
Vaughn Cato の構文はもう少し冗長ですが、echo
ステートメント自体はより解読可能です。for
二重ループの内部を次の 2 行に置き換えます。
array_a=array_$a[$i]
echo ${!array_a}