5

簡単な質問です

私はいくつかの配列を持っています:

array_0=(1 2 3) 
array_1=(1 2 3) 
.......

私は変数を持っています:

 a=0
 echo ${array_"$a"[0]}

不適切な置換エラーが発生しました。誰かが正しい構文を知っていますか?

4

3 に答える 3

5

できることの 1 つは、次の構文を使用することです。

array_a=array_$a[0]
echo ${!array_a}

最初の!文字 as は、変数を評価し、結果を式として使用することにより、追加レベルの間接参照を使用することを示します。

于 2013-08-14T03:57:16.063 に答える
1

使用できます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}
于 2013-08-14T03:48:49.420 に答える