大きな配列を多くの異なる小さな配列に分割するコードを書こうとしています。最終的に、渡される配列のサイズは不明です。これは私のテスト対象です。私はここまで来ました:
#!/bin/bash
num=(10 3 12 3 4 4)
inArray=${#num[@]}
numArrays=$(($inArray/2))
remain=$(($inArray%2))
echo $numArrays
echo $remain
nun=0
if test $remain -gt $nun; then
numArrays=$(($numArrays+1))
fi
array=(1 2)
j=0
for ((i=0;i<$numArrays;i++, j=j+2)); do
array=("${num[@]:$j:2}")
echo "The array says: ${array[@]}"
echo "The size? ${#array[@]}"
done
私が本当に問題を抱えているのは、変数「配列」の名前を毎回少しずつ変更できるようにしたいので、各配列は保持され、ループ後に一意の名前になります。名前を付けてみましたarray_$i
が、次のように返されます。
[Stephanie@~]$ ./tmp.sh
3
0
./tmp.sh: line 16: syntax error near unexpected token `"${num[@]:$j:2}"'
./tmp.sh: line 16: ` array_$i=("${num[@]:$j:2}")'
[Stephanie@RDT00069 ~]$ ./tmp.sh
3
0
./tmp.sh: line 16: syntax error near unexpected token `$i'
./tmp.sh: line 16: ` array($i)=("${num[@]:$j:2}")'
誰かアドバイスはありますか?ありがとう