数组----Bash

Bash最基本的语法
循环和条件判断—Bash
Vim快捷键
运算符----Bash
数组----Bash
字符串—Bash
变量----Bash

数组

巨人的肩膀:Bash脚本教程

菜鸟教程


bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0。

定义数组

Shell中,用括号{}来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:

数组名=(值1 值2 ... 值n)#可以这样

array_name=(value0 value1 value2 value3) #可以这样
array_name=(
value0
value1
value2
value3
)

array_name[0]=value0#可以这样
array_name[1]=value1
array_name[n]=valuen

#利用declare -a也可以声明数组
$ declare -a XXX

读取数组

${数组名[下标]}{}必不可少

使用 @符号可以获取数组中的所有元素----- echo ${array_name[@]}

  • 拷贝数组

    $ hobbies=("$array[@]")#注意是在双引号中呢
    
  • 添加数组成员

    $ hobbies=("array[@]" diving)#新数组在array之后添加了新的成员
    
    #也可以通过+=赋值运算符
    $ foo=(a b c)
    $ echo ${foo[@]}
    a b c
    
    $ foo+=(d e f)
    $ echo ${foo[@]}
    a b c d e f
    

数组长度

获取数组长度的方法与获取字符串长度的方法相同。

  • 整个数组的长度

    ${#array[@]}
    #OR
    ${#array[*]}
    
  • 数组中某个元素的长度

    ${#array[2]}
    

获取数组下标

因为数组的长度是不固定的,某些位置可以有值,某些位置可以为空。所以获取数组中有值的下标也是需要的

语法${!#array[@]} 或者${!#array[*]}

$ arr=([5]=a [9]=b [23]=c)
$ echo ${!arr[@]}
5 9 23
$ echo ${!arr[*]}
5 9 23
#上面例子中,数组的5、9、23号位置有值。

删除数组

命令**unset** 可以删除数组,当然它也可以删除字符串

$ foo=(a b c d e f)
$ unset foo[2] #删除数组中第三个元素
$ echo ${foo[@]}
#a b d e f

#删除整个数组
$unset foo

关联数组

关联数组使用字符串而不是整数作为数组索引。

declare -A可以声明关联数组

declare -A colors
colors["res"]="#ff0000"
colors["green"]="#00ff00"
colors["blue"]="#0000ff"
#访问关联数组
echo ${colors["blue"]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值