數(shù)組和關(guān)聯(lián)數(shù)組
Bash 支持普通數(shù)組和關(guān)聯(lián)數(shù)組,前者使用整數(shù)作為數(shù)組索引,后者使用字符串作為數(shù)組索引。
Bash 從4.0版本開始才支持關(guān)聯(lián)數(shù)組
1 數(shù)組
1.1 在單行中使用數(shù)值列表來定義一個數(shù)組:
array_var=(test1 test2 test3 test4 test5 test6)
??還可以將數(shù)組定義成一組“索引-值”
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
array_var[3]="test4"
array_var[4]="test5"
array_var[5]="test6"
1.2 打印出特定索引的數(shù)組元素內(nèi)容跟:
echo ${array_var[0]}
index=3 && echo ${array_var[$index]}
1.3 以列表形式打印
echo ${array_var[*]}
或
echo ${array_var[@]}
1.4 打印數(shù)組長度
echo ${#array_var[*]}
或
echo ${#array_var[@]}
2 關(guān)聯(lián)數(shù)組
當使用字符串(站點名、用戶名画株、非順序數(shù)字等)作為索引時,關(guān)聯(lián)數(shù)組要比數(shù)字索引更容易使用。
2.1 定義關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組中牢屋,可以使用任意的文本作為數(shù)組索引
??首先需要使用聲明語句將一個變量定義為關(guān)聯(lián)數(shù)組,然后可以使用兩種方法將元素添加到關(guān)聯(lián)數(shù)組中槽袄;
declare -A ass_array
2.1.1 使用行內(nèi)“索引-值”進行賦值
ass_array=([index1]=val1 [index2]=val2)
2.1.2 使用獨立的”索引-值“進行賦值
ass_array[index1]=val1
ass_array[index2]=val2
2.1.3 例:關(guān)聯(lián)水果定價
declare -A fruits_value
fruits_value=([apple]='100 dollars' [orange]='150 dollars')
??顯示水果定價
echo ${fruits_value[apple]}
echo "apple costs ${fruits_value[apple]}"
2.2 列出數(shù)組索引
關(guān)聯(lián)數(shù)組的索引類型和普通數(shù)組不同
echo ${!fruits_value[*]}
或
echo ${!fruits_value[@]}