array_name[@]表示數組大小
向Shell數組添加元素有多種方法,每種方法在使用時都有一些需要注意的地方,沒有見過這方面的總結資料,所以自己總結一下。
直接下標添加
array_name[index]=value
最簡單的添加方式,直接用下標index爲數組元素賦值,在使用時需要注意的是就是需要確保下標index處原本是沒有值的,否則會替換index處原本的值。
數組長度添加
array_name[${#array_name[@]}]=value
#或array_name[${#array_name[*]}]=value
以數組長度爲下標添加,每次只能增加一個元素。但此方法有一個前提,就是數組中的元素下標必須是連續的,否則會存在替換已有元素的風險。例如:
arr=([1]="a" [2]="b")
echo ${arr[@]}
arr[${#arr[@]}]="c"
echo ${arr[@]}
實際上並有添加元素,而是將下標爲2的元素值“b”替換爲了“c”。
重新創建數組
array_name=("${array_name[@]}" value1 ... valueN)