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