shell中陣列講解

2022-01-10 12:43:48 字數 2605 閱讀 5638

定義陣列

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

**如下:

陣列名=(值1 值2 ... 值n)

例如:**如下:

array_name=(value0 value1 value2 value3)

或者 **如下:

array_name=(

value0

value1

value2

value3

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

**如下:

array_name[0]=value0

array_name[1]=value1

array_name[n]=valuen

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

讀取陣列

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

**如下:

$例如:

**如下:

valuen=$

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

**如下:$或

$獲取陣列的長度

獲取陣列長度的方法與獲取字串長度的方法相同在陣列名前加#,例如:

**如下:

# 取得陣列元素的個數

length=$

#或者length=$

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

lengthn=$

陣列的宣告:

**如下:

array[key]=value # array[0]=one,array[1]=two

declare -a array # array被當作陣列名

array=( value1 value2 value3 ... )

array=( [1]=one [2]=two [3]=three ... )

array="one two three" # echo $,把array變數當作陣列來處理,但陣列元素只有字串本身

陣列的訪問:

**如下:

$ # $

陣列的刪除

**如下:

unset array[1] # 刪除陣列中第乙個元素

unset array # 刪除整個陣列

計算陣列的長度:

**如下:

$$ #同上。 $ 、$。注意同#的區別

陣列的提取

從尾部開始提取:

**如下:

array=( [0]=one [1]=two [2]=three [3]=four )

$ # two three four,除掉第乙個元素後所有元素,那麼$表示所有元素

$ # one two

$ # two three

子串刪除

**如下:

[root@localhost dev]# echo $

one two three four

[root@localhost dev]# echo $ # 左邊開始最短的匹配:"t*e",這將匹配到"thre"

one two e four

[root@localhost dev]# echo $ # 左邊開始最長的匹配,這將匹配到"three"

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

[root@localhost dev]# echo $ # 從字串的結尾開始最短的匹配

one tw three four

[root@localhost dev]# echo $ # 從字串的結尾開始最長的匹配

one tw three four

子串替換

**如下:

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

第乙個匹配到的,會被刪除

**如下:

[root@localhost dev]# echo $

mne twm three fmur

所有匹配到的,都會被刪除

**如下:

[root@localhost dev]# echo $

mne twm three fmur

沒有指定替換子串,則刪除匹配到的子符

**如下:

[root@localhost dev]# echo $

ne tw three fur

替換字串前端子串

**如下:

[root@localhost dev]# echo $

kne two three four

替換字串後端子串

**如下:

[root@localhost dev]# echo $

one twk three four

shell中迴圈命令的講解

一 for迴圈 for迴圈的格式為 for 變數名 in 列表 do 命令1 命令2 done 當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名訪問列表中取值。命令可為任何有效的shel命令和語句。變數名為任何單詞。in列表用法是可選的,如果不用它,for迴圈使用命令列的位置引數。in列表...

C C 中的陣列講解

筆者介紹 姜雪偉,it公司技術合夥人,it高階講師,csdn社群專家,特邀編輯,暢銷書作者,已出版書籍 手把手教你架構3d遊戲引擎 電子工業出版社和 unity3d實戰核心技術詳解 電子工業出版社等。陣列是儲存在連續記憶體位置的項的集合,這個想法是將多個相同型別的項宣告在一起。效果如下所示 在c中,...

Shell中的陣列

一 陣列和字串 array 3 a b c echo array 1 輸出b,str a b c array str echo array 1 同樣輸出b,要注意 array str 中的右值的括號不能缺 上面這個就是我們常說的把字串放到乙個陣列中,也可以理解為動態陣列,比c和c 簡單多了 計算字串...