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