shell基礎知識之數組

數組容許腳本利用索引將數據集合保存爲獨立的條目。Bash支持普通數組和關聯數組,前者
使用整數做爲數組索引,後者使用字符串做爲數組索引。當數據以數字順序組織的時候,應該使
用普通數組,例如一組連續的迭代。當數據以字符串組織的時候,關聯數組就派上用場了,例如
主機名稱。node

普通數組

  1. 能夠在單行中使用數值列表來定義一個數組
[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
相關文章
相關標籤/搜索