
shell脚本中的数组排序
发布日期:2021-05-08 20:55:04
浏览次数:22
分类:精选文章
本文共 1817 字,大约阅读时间需要 6 分钟。
shell脚本中的数组排序
一、数组
把数字或者字符串有序或者无序的放在一个集合中的叫数组
1.数组的定义方法:
方法一:
数组名=(value0 value1 value2 ...)
方法二:
数组名=([0]=value [1]=value [2]=value [3]=value ...)
方法三`
列表名="value0 value1value2 ...."数组名=($列表名)
方法四:
数组名[0]="value"数组名[1]="value" 数组名[2]="value"
echo ${ 数组名[*]} #用来查看数组
2.数组包括的数据类型
数值类型 和 字符串类型
字符串类型需使用" "或者’ '定义3.获取数组长度
*和@的方法a=("hello" "你好" "啊啊" "啊啊啊啊啊")a_1=${ #a[*]}echo "$a_1"
4.读取某具体下标赋值
arr_index2=${ arr_number[2]}echo $arr_index2
5.数组遍历
#!/bin/bash#数组的遍历arr=(1 2 1 4 5)echo "原先的数组为:${arr[@]}"for i in ${ arr[@]}do echo $idone
6.数组切片
截取数组中部分数据
arry=(10 20 30 40 50 )echo ${ arry[*]} echo ${ arry[@]} #输出整个数组,此处*与@相同echo ${ arry[@]:1:3} #获取 ${ 数组名[@或*]:起始位置:长度} 的值echo ${ arry[@]:3:1}echo ${ arry[@]:3:5}
7.数组替换与删除
(1)单独替换:
1.通过数组的索引号,来替换数组中相对应具体的某一个
arry=(10 20 30 40 50)echo ${ arry[@]}arry[0]=7777echo ${ arry[@]}
(2)数组中所有对应的条件进行替换
echo ${ arry[*]/77/88} #临时替换echo ${ arry[*]} #此时数组原来的值不变
(3) 删除数组
unset arry #删除arry数组
(4) 删除数组中具体索引对应的值
arr=(1 2 3 4 5 )echo ${ arr[*]}unset arr[0] #删除数组中选择索引对应的元素echo ${ arr[*]}echo ${ arr[0]}
8.数组追加元素
(1)方法一:单个添加
arr=(10 20 30 40 50 60 )echo ${ arr[5]}arr[6]=77arr[7]=88echo ${ arr[*]}
方法二:在不进行任何删减时,索引最大值,就是元素长度减一
因为数组是有0索引开始的,所以数组的长度比最大索引大1,因此我们可以在数组最后面进行添加。
(3) 方法三:直接获取源数组的全部元素再加上新要添加的元素,一并重新赋予该数组,重新刷新定义索引
即重新排列数组,并且重新赋值
(4)方法四:待添加元素必须用“()”包围起来,并且多个元素用空格分隔
arr+=(10 11 12 ...) #直接在arr 原有数组的情况下 增加数值。
9.向函数中传数组参数

因此需要
#!/bin/bash#数组函数传参test (){ echo "传入得数组为:$@" newarr=`echo $@` echo "新得为:${newarr[@]} "}arr=(1 2 21 3 4)echo "原有${arr[@]} "test ${arr[@]}

发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月06日 15时58分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
安装jdk并配置环境变量
2021-05-09
稀疏数组
2021-05-09
js的严格模式
2021-05-09
idea的安装和无限期试用
2021-05-09
Oracle VM VirtualBox安装PVE虚拟机
2021-05-09
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2021-05-09
Android MediaPlayer setDataSource failed
2021-05-09
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2021-05-09
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2021-05-09
大前端的自动化工厂(1)——Yeoman
2021-05-09
数据仓库建模方法论
2021-05-09
虚拟机搭建hadoop环境
2021-05-09
DataStax Bulk Loader教程(四)
2021-05-09
.NET应用框架架构设计实践 - 概述
2021-05-09
Rust 内置 trait :PartialEq 和 Eq
2021-05-09
Hibernate(十四)抓取策略
2021-05-09
[菜鸟的设计模式之旅]观察者模式
2021-05-09
Spring-继承JdbcDaoSupport类后简化配置文件内容
2021-05-09
Java基础IO流(一)
2021-05-09