これらの配列の変数名を保持する別の配列から複数の配列を参照するスクリプトを記述したいと思います。
これまでの私のコードは次のとおりです。
#!/bin/bash
array1=('array1string1' 'array1string2')
array2=('array2string1' 'array2string2')
array_names=('array1' 'array2')
for a in ${array_names[@]}
do
for b in ${a[@]}
do
echo $b
done
done
出力で両方の配列をスキャンして(外側のforループから)、echoを呼び出す内側のforループにそれぞれの文字列を出力します。私の現在の出力は私を示しています:
array1
array2
この点についてのご指摘をいただければ幸いです。ありがとうございました!
${a[@]}
を加える${!a}
ことで必要な操作を実行できます(私はそう思います)。
${!a[@]}
、配列の長さを与えa
ます。
${!a}
は私に最初の要素を与えるだけです。
for b in "${array1[@]}" "${array2[@]}"; do ...; done
?