shell數(shù)組和關(guān)聯(lián)數(shù)組

數(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ù)值列表來定義一個(gè)數(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ù)組長(zhǎng)度

echo ${#array_var[*]}
或
echo ${#array_var[@]}

2 關(guān)聯(lián)數(shù)組

當(dāng)使用字符串(站點(diǎn)名、用戶名、非順序數(shù)字等)作為索引時(shí),關(guān)聯(lián)數(shù)組要比數(shù)字索引更容易使用。

2.1 定義關(guān)聯(lián)數(shù)組

關(guān)聯(lián)數(shù)組中,可以使用任意的文本作為數(shù)組索引

??首先需要使用聲明語(yǔ)句將一個(gè)變量定義為關(guān)聯(lián)數(shù)組,然后可以使用兩種方法將元素添加到關(guān)聯(lián)數(shù)組中;

declare -A ass_array

2.1.1 使用行內(nèi)“索引-值”進(jìn)行賦值

ass_array=([index1]=val1 [index2]=val2)

2.1.2 使用獨(dú)立的”索引-值“進(jìn)行賦值

ass_array[index1]=val1
ass_array[index2]=val2

2.1.3 例:關(guān)聯(lián)水果定價(jià)

declare -A fruits_value
fruits_value=([apple]='100 dollars' [orange]='150 dollars')

??顯示水果定價(jià)

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[@]}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容