shell数组

一、数组的定义

数组包括的数据类型

  • 数值类型
  • 字符类型

使用“ ”或‘ ’定义

1.数组名=(value0 value1 value2 ...)
2.数组名=([0]=value [1]=value [2]=value ...)
3.列表名="value0 value1 value2 ..."
  数组名=($列表名)
4.数组名[0]="value"
  数组名[1]="value"
  数组名[2]="value"

数组各类使用方法

例:
获取数组的长度
arr_number=(1 2 3 4 5)
arr_length=${#arr_number[*]}
echo $arr_length

获取数组数据列表
echo ${arr_number[*]}
echo ${arr_number[@]}

获取数组下标列表
echo ${!arr_number[*]}

读取某下标赋值
arr_index2=${arr_number[2]}
echo $arr_index2

数组切片、替换、删除

数组切片
arr=(1 2 3 4 5)
echo ${arr[@]}  #输出整个数组
echo ${arr[@]:0:2} #获取 ${数组名[@或*]:长度}的值

数组替换
arr=(1 2 3 4 5)
echo ${arr[@]/4/66} #${数组名[@或*]/查找字符/替换字符}
echo ${arr[@]}      #并不会替换数组原有内容
arr=(${arr[@]/4/66})#要实现改变原有数组,可通过重新赋值实现
echo ${arr[@]}

数组删除
arr=(1 2 3 4 5)
unset arr  #删除数组
echo ${arr[@]}

arrarr=(1 2 3 4 5)
unset arr[2]  #删除第三个元素
echo ${arr[@]}

数组追加元素

1.array_name[index]=value
2.array_name[${#array_name[@]}]=value
3.array_name=("${array_name[@]}" value ...valueN)
  ①双引号不能省略,否则,当数组array_name中存在包含空格的元素时会按空格将元素拆分成多个
  ②不能将"@"替换为"*",如果替换为"*",不加引号时与"@"的表现一致,加双引号,会将数组array_name中的所有元素作为一个元素添  加到数组中
  for i in "${array_name[@]}";do echo $i;done
4.array_name+=(value1 ... valueN)
  待添加元素必须用"()"包围起来,并且多个元素用空格分隔

二、数组例子

数组用函数表现

1308

1309

将数组值都乘以2

1310

1311

数组冒泡排列

1312

1313

数组选择排序

1314

1315

数组插入排序

1316

1317

数组反转排序

13181319

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值