数组是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
浙公网安备 33010602011771号