shell脚本数组排序输出
时间: 2023-09-07 13:17:58 浏览: 121
可以使用Shell内置的sort命令对数组进行排序并输出,示例如下:
```bash
#!/bin/bash
# 定义数组
arr=(2 1 4 3 5)
# 对数组进行排序
sorted_arr=($(echo ${arr[*]} | tr ' ' '\n' | sort -n))
# 输出排序后的数组
echo ${sorted_arr[*]}
```
输出结果为:1 2 3 4 5。
解释:
1. 使用数组变量`arr`定义了一个包含5个数字的数组。
2. 使用`echo ${arr[*]}`命令将数组转换为以空格分隔的一行字符串。
3. 使用`tr`命令将字符串中的空格转换为换行符,将一行字符串转换为多行字符串。
4. 使用`sort -n`命令对数字进行排序,`-n`选项表示按数值大小排序。
5. 使用`$(...)`将排序后的多行字符串转换为数组。
6. 使用`${sorted_arr[*]}`输出排序后的数组,`${sorted_arr[*]}`表示将数组中的所有元素用空格分隔输出。
相关问题
shell 数组排序
要在Shell中对数组进行排序,可以使用排序算法,如冒泡排序或快速排序。下面是一个使用冒泡排序对数组进行升序排序的示例代码:
```shell
#!/bin/bash
# 定义要排序的数组
array=(5 2 8 1 9)
# 获取数组长度
length=${#array[@]}
# 冒泡排序
for ((i=0; i<$length-1; i++))
do
for ((j=0; j<$length-i-1; j++))
do
if [ ${array[j]} -gt ${array[j+1]} ]
then
# 交换位置
temp=${array[j]}
array[j]=${array[j+1]}
array[j+1]=$temp
fi
done
done
# 打印排序后的数组
echo "排序后的数组:${array[@]}"
```
运行以上脚本,将会输出排序后的数组:1 2 5 8 9。
你还可以根据需要修改脚本中的数组元素来进行排序。
shell脚本中数组升序
在Shell脚本中,可以使用`sort`命令对数组进行升序排序。以下是一个示例代码:
```shell
#!/bin/bash
# 定义数组
arr=(3 1 4 2 5)
# 使用sort命令对数组进行升序排序
sorted_arr=($(echo ${arr[*]} | tr ' ' '\n' | sort -n))
# 输出排序后的数组
echo ${sorted_arr[*]}
```
在这个示例中,我们首先定义了一个包含五个元素的数组`arr`,然后使用`sort`命令对数组进行升序排序,并将排序后的结果存储在`sorted_arr`数组中。最后,我们通过`echo`命令输出排序后的数组。
阅读全文