array=($(<abc.txt))
len=${#array[*]}
i=0
while [ $i -lt "$len" ]
do
j=0
while [ $j -lt $(((len - 1)) - i)) ]
do
k=$((j + 1))
if [ "${array[$j]}" -gt "${array[$k]}" ]
then
temp=${array[$j]}
array[$j]=${array[$k]}
array[$k]=$temp
fi
j=$k
done
i=$((i + 1))
done
echo "${array[@]}"
我的数组没有排序,我也收到一条消息“:integer expression expected”。它可以在我朋友的电脑上正常工作。我只想从另一个文件输入一个数组,然后使用bubblesort。如果我将数组声明为array =(1 2 3 4 9 8 7 6 5),它也可以正常工作。给定的bash脚本中的错误用于bubblesort的位置?
任何你不使用'sort'命令的原因? –
您不需要嵌套算术表达式; $(((len-1)-i))'就足够了。 – chepner
,因为作为学生我要实现bubblesort算法 –