shell指令碼學習(十六) 陣列

2021-10-03 02:55:30 字數 2790 閱讀 6658

shell陣列:是若干資料的集合,其中的每乙份資料都稱為元素,shell陣列元素的下標也是從0開始計數,

獲取陣列中的元素要使用下標[ ],下標可以是乙個整數,也可以是乙個結果為整數的表示式;下標必須大於等於0。

shell中,用小括號( )來表示陣列,陣列元素之間用空格來分隔。由此,定義陣列的一般形式為:

array_name=

(ele1 ele2 ele3 ... elen)

注意:賦值號=兩邊不能有空格,必須緊挨著陣列名和陣列元素

用小括號將變數值括起來賦值給陣列變數,每個變數值之間要用空格進行分隔

array1=(1 2 3 4 5 6)

echo $

#輸出定義陣列的所有元素

echo $

#輸出定義陣列的所有元素

echo $

#輸出陣列中下標為0的元素

1)採用鍵值對的形式賦值

arry=

(n1 n2 n3)

arry=([

0]=n1 [1]

=n2…)

(鍵值對形式,此時,陣列定義可以不從0開始,從指定位置開始。)

array2=([

1]=one [2]

=two [3]

=three)

echo $

echo $ #輸出定義陣列的個數

echo $

echo $ #輸出定義陣列的第乙個數

2)通過分別定義陣列變數的方法來定義

3)動態地定義陣列變數動態地定義陣列變數,並使用命令的輸出結果作為陣列的內容

列印單個陣列元素: $   #當未指定陣列下標時,下標預設從0開始

列印全部陣列內容:$或$

列印陣列元素的個數:$或$

如果下標不存在,則自動新增乙個新的元素;如果下標存在,則覆蓋原來的值。

因為陣列本質上還是變數,因此可以通過 unset 陣列[下標] 刪除相應的陣列元素刪除整個陣列:unset 陣列

#start代表從第幾個下標開始擷取,length表示擷取的長度

echo $

echo $

echo $

array2=($(

echo))

echo $

echo $

#從下標0開始擷取2個

echo $

#從下標4開始擷取10個

注意:替換完以後,原陣列的內容不會改變

Linux shell指令碼 (十六)shell函式

函式可以讓我們將乙個複雜功能劃分成若干模組,讓程式結構更加清晰,重複利用率更高。像其他程式語言一樣,shell 也支援函式。shell 函式必須先定義後使用。shell 函式的定義格式如下 function name 如果你願意,也可以在函式名前加上關鍵字 function function fun...

Shell指令碼學習筆記 陣列

shell只支援一維陣列,不支援多維陣列,初始化時不需要定義陣列大小。與大部分程式語言類似,shell陣列元素的下標從0開始。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應該大於等於0。shell陣列用括號來表示,元素用 空格 符號分隔開,可以不使用連續的下標,而且下標的範圍沒有限制...

shell指令碼學習總結02 陣列

bash同時支援普通陣列個關聯陣列,普通陣列只能使用整數作為陣列的索引,關聯陣列可以使用字串作為陣列的索引。陣列的定義方法 在單行中使用一列值定義乙個陣列 root new array1 123 456 使用索引 值定義 root new array2 0 test1 root new array2...