標籤:
0x00 數組的定義
數組的定義組作為一種特殊的資料結構在任何一種程式設計語言中都有它的一席之地,當然bash shell也不例外。本文就shell數組來做一個小的總結。在這裡只討論一維數組的情況,關於多維陣列(事實上,你得用一維數組的方法來類比),不涉及。這裡包括數組的複製,計算,刪除,替換。
數組的定義方式:
1. array[key]=value # arr[0]="hello" arr[1]="world"
2. array=( value1 value2 ... ) # arr=( "hello" "world" ) 注意括弧前面要有空格
3. array=( [1]=value1 [2]=value2 ) # arr=( [0]="hello" [1]="world" )
0x01 數組的訪問
- 單個訪問數組中元素
${array[key]} # ${arr[1]}
- 所有數組中的元素
用${數組名[下標]} 下標是從0開始 下標是:*或者@ 得到整個數組內容
${array[*或@]} #${arr[*]}
- 計算數組的長度
用${#數組名[@或*]} 可以得到數組長度
${#array[*]}
- 數組的提取
直接通過 ${數組名[@或*]:起始位置:長度} 切片原先數組,返回是字串,中間用“空格”分開,因此如果加上”()”,將得到切片數組
arr=( 1 2 3 4 5 6 7 )
${arr[@]:0} # 表示所有元素
${arr[@]:1} # 除掉第一個元素後所有元素
${arr[@]:0:2} # 從0開始取2個
- 數組元素的刪除
直接通過:unset 數組[下標] 可以清除相應的元素,不帶下標,清除整個資料。
unset arr[1]
- 數組元素的替換
${數組名[@或*]/尋找字元/替換字元} 該操作不會改變原先數組內容
arr=( 1 2 3 4 5 )
echo ${arr[@]/2/10} # 結果為 1 10 3 4 5
arr=(${arr[@]/2/10}) # 改變原數組內容
echo $arr # 1 10 3 4 5
shell 編程之 數組