### 数组分类 - 普通数组:只能使用整数作为数组索引 - 关联数组:可以使用字符串作为数组索引 ### 普通数组定义 - 一次赋予一个值 ``` 数组名[索引下标]=值 array[0]=v1 array[1]=v2 array[2]=v3 ``` - 一次赋予多个值,元素之间用逗号隔开 ``` 数组名=(值1 值2 值3 值4) array=(1 2 3 4) array2=(`cat /etc/passwd`) # 文件中的每一行赋值给array,有空格按照空格切分,没有空格按照换行符切分 array3=(`ls /root`) array4=(harry may jack "Miss You") array5=(1 2 3 "hello world" [10]=linux) ``` ### 数组值的读取 - ${数组名[元素下标]} ``` echo ${array[1]} 获取数组里指定元素 echo ${array[*]} 获取数组里所有元素 echo ${#array[*]} 获取数组元素个数,也就是数组长度 echo ${!array[@]} 获取数组的索引下标 echo ${!array[*]} 获取数组的索引下标 echo ${array[@]:1:2} 获取指定下表的元素,1 代表从索引为 1 的元素开始,2 代表获取后面的几个元素 echo ${array[*]:1:2} 同上 ``` ### 关联数组定义 - 先声明定义一个关联数组 ``` declare -A asso_array1 ``` - 数组单个赋值 ``` asso_array1[linux]=one asso_array1[java]=two asso_array1[php]=three ``` - 数组一次多个赋值 ``` asso_array1=([name1]=linux [name2]=jack [name3]=amy) ```