1

私はこれを行うことができることを知っています:

set=("1 2 3" "4 5 6")
for subset in "${set[@]}"
do
for element in $subset
do
echo $element
done
done

1 2 3 4 5 6 が順次印刷されます。しかし、私はこれを行うことはできません:

  set="(1 2 3) (4 5 6)"
  for subset in $set
  do
  echo ${subset[2]}
  done

3 6 を出力したいのですが、これを実行したい理由は、1 つずつ反復するのではなく、反復中にアクセスしたい要素にアクセスしたいからです。そのため、大きな配列の中に引用符を入れるのではなく、引用符の中に配列を入れようとしています。これを行う方法はありますか?ありがとう、

4

1 に答える 1

2

残念ながら、bash は多次元配列をサポートしていないと思います。これは、探しているもののように聞こえます。次のように、bash 自体の助けを借りてシミュレートできます。

x=()
x+=("1,2,3")
x+=("4,5,6")

for val in ${x[@]}; do
    subset=($(echo $val | tr ',' ' '))
    echo ${subset[2]}
done
于 2013-11-12T02:50:28.323 に答える