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算法 –