数组简介
数组与变量的区别
变量:用一个固定的字符串,代替一个不固定字符串。
数组:用一个固定的字符串,代替多个不固定字符串。
数组类型
普通数组:只能使用整数作为数组索引
关联数组:可以使用字符串作为数组索引
这里用游戏来介绍一下
总结: 变量切片有个索引的概念。一个索引(整数)对应一个字符。
普通数组:中的索引对应一个字符串。
关联数组:数组中的索引可以使用字符串。
一、 普通数组
1. 定义数组
(1)方法一:一次赋一个值
数组名[下标]=变量值
# array1[0]=pear
# array1[1]=apple
# array1[2]=orange
# array1[3]=peach
查看数组
[root@localhost ~]# declare -a | grep array1
declare -a array1='([0]="pear" [1]="apache" [2]="orange" [3]="peach")'
查看数组
[root@localhost ~]# echo ${array1[@]}
pear apache orange peach
(2)一次赋多个值
# array2=(tom jack alice)
# array3=(`cat /etc/passwd`) 希望是将该文件中的每一个行作为一个元数赋值给数组array3
# array4=(`ls /var/ftp/Shell/for*`)
# array5=(tom jack alice "bash shell")
# colors=($red $blue $green $recolor)
# array6=(1 2 3 4 5 6 7 "linux shell" [20]=saltstack)
2. 访问数组元素
访问数组元数:
echo ${array1[0]} 访问数组中的第一个元数
echo ${array1[@]} 访问数组中所有元数 等同于 echo ${array1[*]}
echo ${#array1[@]} 统计数组元素的个数
echo ${!array2[@]} 获取数组元素的索引
echo ${array1[@]:1} 从数组下标1开始
echo ${array1[@]:1:2} 从数组下标1开始,访问两个元素
二、关联数组
1. 定义关联数组:declare –A 数组名
(1)方法一: 一次赋一个值
数组名[索引]=变量值
# declare -A ass_array1
# ass_array1[index1]=pear