數組容許腳本利用索引將數據集合保存爲獨立的條目。Bash支持普通數組和關聯數組,前者
使用整數做爲數組索引,後者使用字符串做爲數組索引。當數據以數字順序組織的時候,應該使
用普通數組,例如一組連續的迭代。當數據以字符串組織的時候,關聯數組就派上用場了,例如
主機名稱。node
[root@dns-node2 tmp]# array_var=(test1 test2 test3) [root@dns-node2 tmp]# echo ${array_var[0]} test1
另外,還能夠將數組定義成一組「索引-值」python
[root@dns-node2 tmp]# array_var[0]="test0" [root@dns-node2 tmp]# array_var[0]="test3" [root@dns-node2 tmp]# array_var[2]="test2" [root@dns-node2 tmp]# array_var[3]="test0" [root@dns-node2 tmp]# echo ${array_var} test3 [root@dns-node2 tmp]# echo ${array_var[3]} test0 [root@dns-node2 tmp]# echo ${array_var[2]} test2 [root@dns-node2 tmp]# echo ${array_var[1]} test2 [root@dns-node2 tmp]# echo ${array_var[0]} test3
打印這個數組下面全部的值數組
[root@dns-node2 tmp]# echo ${array_var[*]} test3 test2 test2 test0 [root@dns-node2 tmp]# echo ${array_var[@]} test3 test2 test2 test0
打印數組的長度code
[root@dns-node2 tmp]# echo ${#array_var[@]} 4
在關聯數組中,咱們能夠用任意的文本做爲數組索引。首先,須要使用聲明語句將一個變量,這個實際上是Map,在python裏面叫作字典,在go裏面叫作map。
定義爲關聯數組索引
[root@dns-node2 tmp]# declare -A ass_array [root@dns-node2 tmp]# ass_array=([i1]=v1 [i2]=v2)
[root@dns-node2 tmp]# ass_array=[i1]=v1 [root@dns-node2 tmp]# ass_array=[i2]=v2
取值dns
[root@dns-node2 tmp]# echo ${ass_array[i1]} v1 [root@dns-node2 tmp]# echo ${ass_array[i2]} v2 [root@dns-node2 tmp]# echo ${ass_array[*]} # 取value v2 v1 [root@dns-node2 tmp]# echo ${ass_array[@]} # 取value v2 v1 [root@dns-node2 tmp]# echo ${!ass_array[@]} #取key i2 i1