冒泡法:
#!/bin/bash
#f=`cat /root/444.txt`
arry=($f) #(3 2 5 8 4) #创建一个数组
a=${#arry[*]} #给a赋值数组的长度
for ((i=1; i<$a; i++)) #for循环i从1开始;i小于$a;i一个个加 (变化的次数是a-1)
do #开始for循环
for ((j=0; j<$a-$i; j++)) #嵌套for循环锁引号从0号为位开始(0是第一个数组数值)
j小于$a-$i是比较的轮数比一轮少一轮,j一个个加
do #开始for循环
if [ ${arry[$j]} -lt ${arry[$[$j + 1]]} ];then #如果索引号第一个数值大于第二个数值的时候输出
temp=${arry[$j]} #第一个数值备份为temp
arry[$j]=${arry[$[$j+1]]} #把第二个数值移到第一个数值上
arry[$[$j+1]]=$temp #第二个数值变为之前备份的第一个数值
fi #结束if循环
done #结束内嵌for循环
done #结束for循环
echo ${arry[*]} #输出数组里的锁引号
传递数组参数从(函数到数组)
#!/bin/bash
g=(1 2 3 5 6 7 8 9 ) #原数组
echo "原始的数组的值为${g[*]}" #输出原数组的所有索引号
a=${g[*]} #a赋值为原数组里所有索引号
test(){ #函数开始
newg=($(echo $@)) #创建新数组存在包含空格的元素时会按空格元素拆分成多个
a=$[ ${#newg[*]} ] #给a赋值为新数组的索引号长度
for ((i=0; i<$a; i++)) #for循环i索引号从0开始(0相当于1)i小于索引号长度,i一个个加
do #开始循环
b=$[ ${newg[$i]}*6 ] #给b赋值新创建的数组所有索引号x6
newg[$i]=$b #新建数组等于$b
done #结束循环
echo ${newg[*]} #输出新建数组的所有索引号
} #函数结束
d=(`test $a`) #d赋值调用函数合原原引号
echo "新建组的值为${d[*]}" #输出新建组的值#