1.数组声明和赋值
>>>declare -a array # unnecessary #The following 3 lines all can define an array and give values >>>array=(0 1 2) >>>array=([0]=0 [1]=1 [2]=v2) >>>array[0]=0 #以空白作为分隔符拆分字符串为数组 >>>str="1 2 3" >>>array=($str) #使用declare -p array 来查看是否数组和数组的结构 >>>declare -p array #输出为 declare -a arr='([0]="1" [1]="2" [2]="3")' #使用其它分隔符拆分字符串为数组,需指定IFS >>>IFS=: array=($PATH) #使用read -a 拆分字符串为数组 >>>read -a array <<<$str >>>declare -p array #输出为 declare -a arr='([0]="1" [1]="2" [2]="3")' >>>IFS=/ read -r -a PARTS <<<$PWD
2.引用数组元素:
$array ${array} ${array[0]} #第0个元素 ${array[n]} #第n个元素(n从0开始计算)
3.引用整个数组
${array[*]} ${array[@]} 这两种方式等同,会把数组展开。 ${array[*]} 表示把数组拼接在一起的整个字符串,如果作为参数传递, 会把整个字符串作为一个参数。 ${array[@]} 如果作为参数传递,表示把数组中每个元素作为一个参数, 数组有多少个元素,就会展开成多少个参数。
3.计算数组元素长度:
${#array[*]} ${#array[@]} 不是 ${#array},因为它等同于 ${#array[0]}
4.遍历数组
for i in "${array[@]}"; do echo $i; done
5.
6.
参考:http://codingstandards.iteye.com/blog/1164910