Linux shell指令碼 (四)shell陣列

2021-08-15 19:34:51 字數 1192 閱讀 1601

bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。

在shell中,用括號來表示陣列,陣列元素用「空格」符號分割開。定義陣列的一般形式為:

array_name=(value1 ... valuen)

例如:

array_name

=(value0 value1 value2 value3)

還可以單獨定義陣列的各個分量:

array_name[0]=value0

array_name[1]=value1

array_name[2]=value2

可以不使用連續的下標,而且下標的範圍沒有限制。

讀取陣列元素值的一般格式是:

$例如:

value=$

舉個例子:

#!/bin/sh

num[0]=

"0"num[1]=

"1"num[2]=

"2"num[3]=

"3"num[4]=

"4"echo"$

"echo"$

"

執行指令碼,輸出:

$./test.sh01

使用@ 或 * 可以獲取陣列中的所有元素,例如:

$

$

舉個例子:

#!/bin/sh

num[0]=

"0"num[1]=

"1"num[2]=

"2"num[3]=

"3"num[4]=

"4"echo

"first method: $"

echo

"second method: $"

執行指令碼,輸出:

$./test.sh

first method: 012

34second method: 012

34

獲取陣列長度的方法與獲取字串長度的方法相同,例如:

# 取得陣列元素的個數

length=$

# 或者

length=$

# 取得陣列單個元素的長度

lengthn=$

#n表示陣列的具體某個下標

sh 指令碼語法

介紹 1 開頭 程式必須以下面的行開始 必須方在檔案的第一行 bin sh 符號 用來告訴系統它後面的引數是用來執行該檔案的程式。在這個例子中我們使用 bin sh來執行程式。當編寫指令碼完成時,如果要執行該指令碼,還必須使其可執行。要使編寫指令碼可執行 編譯 chmod x filename 這樣...

sh 指令碼語法

介紹 1 開頭 程式必須以下面的行開始 必須方在檔案的第一行 bin sh 符號 用來告訴系統它後面的引數是用來執行該檔案的程式。在這個例子中我們使用 bin sh來執行程式。當編寫指令碼完成時,如果要執行該指令碼,還必須使其可執行。要使編寫指令碼可執行 編譯 chmod x filename 這樣...

linux shell指令碼案例四 陣列

1.單獨定義陣列的分量 arryname 0 dinfo arryname 1 is arryname 2 a arryname 3 liar 2.第二種方式,陣列的元素用空格隔開 dinfo dinfo is rubbish 3.獲取陣列的長度 chang echo 陣列的長度為 陣列的案例 bi...