0

入力の読み取りに問題があり、シェルスクリプトの配列に保存します。助けてください

declare -a array_name
echo "How many groups you want to enter?"
read group_count
echo "enter $group_count groups: "
for(( c = 0 ; c <= $group_count ; c++))
do
  read abc_elements
  while read abc_elements
  do
   array_name[$c] = "$abc_elements"
  done
done
echo -e "${array_name[@]}"

ありがとうございました。

4

1 に答える 1

2

whileコードが常にtrue 状態になるため、ここにループを追加しました。ここでは必要ありません。c < $group_countまた、配列のインデックスは 0 から始まるため、条件を使用します。

次のコードを使用します。

declare -a array_name
echo "How many groups you want to enter?"
read group_count
echo "enter $group_count groups: "
echo $group_count
for(( c = 0 ; c < $group_count ; c++))
do
  read abc_elements
#  while read abc_elements
#  do
  array_name[$c]="$abc_elements"
#  done
done
echo -e "${array_name[@]}"

期待どおりに配列が返されます。

于 2013-10-30T10:24:21.843 に答える