一、一维数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
类似与C语言,数组元素的下标由0开始编号。
二、定义数组
在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。
array_name=(value0 value1 value2 value3)
或
array_name=( value0
value1
value2
value3 )
或
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用连续的下标,而且下标的范围没有限制。
#!/bin/bash a=( 1 2 3 4 ) b=(11 12 13 14) c[0]=21 c[2]=22 c[3]=23 c[4]=24 echo ${a[@]} #1 2 3 4 echo ${b[@]} #11 12 13 14 echo ${c[@]} #21 22 23 24
三、读数组
${数组名[下标]}
#!/bin/bash a=( 1 2 3 4 ) echo ${a[1]} #2
使用@符号或者*可以获取数组中的所有元素
#!/bin/bash a=( 1 2 3 4 ) echo ${a[@]} #1 2 3 4 echo ${a[*]} #1 2 3 4
四、数组的长度
${#a[@]}或${#a[*]}取数组的长度
${#a[n]}取的是a[n]转成string的长度
#!/bin/bash a=( 111 2 3 4 5 ) echo ${#a[@]} #5 echo ${#a[*]} #5 echo ${#a[0]} #3 echo ${#a[5]} #0 echo ${#a[n]} #3