標籤:shell
1.7 數組和關聯陣列
- 數組是Shell指令碼非常重要的組成部分,它藉助索引將多個獨立的獨立的資料存放區為一個集合。普通數組只能使用整數作為數組索引,關聯陣列不僅可以使用整數作為索引,也可以使用字串作為索引。通常情況下,使用字串做索引更容易被人們理解。Bash從4.0之後開始引入關聯陣列。
1.7.1 定義列印普通數組
#在一行上列出所有元素array_var=(1 2 3 4 5 6)#以“索引-值”的形式一一列出array_var[0]="test1"array_var[1]="test2"array_var[2]="test3"
注意:第一種方法要使用圓括弧,否則後面會報錯。
數組元素的方法有如下幾種:
echo ${array_var[0]} #輸出結果為 test1index=2echo ${array_var[$index]} #輸出結果為 test3echo ${array_var[*]} #輸出所有數組元素echo ${array_var[@]} #輸出所有數組元素echo ${#array_var[*]} #輸出值為 3
- 注意:在ubuntu 14.04中,shell指令碼要以#!/bin/bash開頭,且執行指令碼的方式為 bash test.sh。
1.7.2 定義列印關聯陣列
- 定義關聯陣列
在關聯陣列中,可以使用任何文本作為數組索引。定義關聯陣列時,首先需要使用聲明語句將一個變數聲明為關聯陣列,然後才可以在數組中添加元素,過程如下:
declare -A ass_array #聲明一個關聯陣列ass_array=(["index1"]=index1 ["index2"]=index2)#內嵌“索引-值”列表法ass_array["index3"]=index3ass_array["index4"]=index4echo ${ass_array["index1"]} #輸出為index1echo ${ass_array["index4"]}echo ${!ass_array[*]} #輸出索引列表echo ${!ass_array[@]} #輸出索引列表
- 注意:對於普通數組,使用上面的方法依然可以列出索引列表,在聲明關聯陣列以及添加數組元素時,都不能在前面添加美元符$
1.7.3 參考
Linux Shell指令碼攻略(1.7)