数组是shell中比较重要的一个数据类型。数组和Python中的列表是有不同。数组是某一种类型相同元素的集合,而列表中的元素可以有不同的数据类型。

数组其实也是一个变量,普通变量只能存一个值而数组变量可以存多个值。

数组又分为普通数组和关联数组

#普通数组
name = ('小红‘ '小明' '小花')
普通数组的索引为0   1   2

#关联数组
people=(['name']=小明  ['age']=13  ['sex']=''])

关联数组的索引为:name、age、sex

##注意数组中的元素之间是没有逗号的和列表不同

普通数组

普通数组定义的方法有两种:

  第一种一次只赋一个值

name[0]=alex
name[1]=sticker

  第二种一次赋值多个值

name=(alex sticker)
name=(`cd /logs ; ls`) #这个就是动态数组了

  第三种形式

name = ([0]=alex [1]=sticker)

使用declare定义数组

declare -a names=(tom jack)  #-a是普通数组,-A是关联数组

 

数组的输出

${ 数组名称 [下标索引] }

查看数组中的所有元素

${数组的名字[*]}
或
${数组的名字[@]}

#例子
name=(alex sticker)
echo ${name[@]}


root@ubuntu:~/a# bash d.sh 
alex sticker

查看数组元素的个数

格式:

${#数组名字[@]}

#例子
name=(sticker alex)
root@ubuntu:~/a# echo ${#name[@]}
2

 

获得数组所有的索引

#其实就是把#换成了!
root@ubuntu:~/a# echo ${!name[@]}
0 1

关联数组

只有关联数组才需要declare声明

root@ubuntu:~/a# declare -A people1=([name]=alex [age]=13)
root@ubuntu:~/a# echo ${people1[name]}
alex

 

posted on 2019-07-19 15:20  程序员一学徒  阅读(167)  评论(0)    收藏  举报