要将old=(4 7 1 101)里面的元素,按自然数的顺序排序,生成新的数组new=(1 4 7 101)。如果要遍历元素,借助中间变量一个个比较的方式可能比较繁琐,这里有两种比较简单达到数组重新排序。
方法一: 借助于tr和sort命令
old=(4 7 1 101)
new=$(echo ${old[*]} | tr ' ' '\n' | sort -n)
echo $new
结果如下:
1 4 7 101
备注: 数组中分隔符是空格,借助于tr将空格替换成换行符,再用sort命令的-n可以按自然数排序,便可达到目的。