Shell数组

目录

什么是数组?

定义数组

查看数组

查看数组的元素列表

查看数组的长度(元素的个数)

查看数组的元素下标

查看某个下标的元素值

数组分片

数组字符替换

数组删除

数组遍历和重新定义

数组追加元素

函数与数组

向函数传数组参数

从函数返回数组


什么是数组?

  • 字符串:"abcdef"
  • 字符串列表:"a" "b" "c" "d" "f"
  • 数组:("a" "b" "c" "d" "f")                                                                                                                 下标:0   1    2   3    4 
  1. 由多个元素组成,用空格隔开
  2. 数组可包含的数据类型:数值 或 “字符串” ‘字符串’

定义数组

方法一

数组名=(value0 value1 value2 ...)

方法二

数组名=([0]=value [1]=value [2]=value ...)

方法三

列表名="value0 value1 value2 ..."
数组名=($列表名)

方法四

数组名[0]="value"
数组名[1]="value"
数组名[2]="value"

查看数组

查看数组的元素列表

echo ${数组名[@]}
echo ${数组名[*]}

查看数组的长度(元素的个数)

echo ${#数组名[@]}
echo ${#数组名[*]}

查看数组的元素下标

echo ${!数组名[@]}
echo ${!数组名[*]}

查看某个下标的元素值

echo ${数组名[下标]}

数组分片

echo ${数组名[@]:下标:长度}
echo ${数组名[*]:下标:长度}

数组字符替换

echo ${数组名[@]/旧字符/新字符}
数组名=(${数组名[*]/旧字符/新字符})
     #通过重新定义的方式实现永久替换

数组删除

unset 数组名[下标]      #删除数组的某个下标
unset 数组名               #删除数组

数组遍历和重新定义

arr=(1 2 3 4 5)
n=0
for i in ${arr[@]}
do
    arr[$n]=$[i*2]
    let n++
done

数组追加元素

数组名[新下标]=新元素

数组名[数组长度]=新元素        #仅适用于完整的数组

数组名+=(新元素1 新元素2 ....)

数组名=("${数组名[@]}" 新元素1 新元素2 ....)

函数与数组

向函数传数组参数

函数名() {
     数组2=($@)                 
#在函数体内将传入的列表重新组成数组
     ....
}

函数名 ${数组1[@]}          #在函数体外将数组分解成列表传入

从函数返回数组

函数名(){
    ....
    echo ${数组2[@]}   
  #在函数体内以列表形式返回值
}

数组1=(函数名 参数)      #在函数体外将函数执行的结果重新组合成数组

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值