shell中的陣列

2022-05-15 09:08:13 字數 1404 閱讀 2655

宣告

alphas[2]=c

alphas[

0]=a

alphas[

1]=b

alphas=([2]=c [0]=a [1]=b)

alphas=(a b c)

上面3種形式都宣告的陣列包含相同的內容,第乙個元素是a,第二個元素是b,第三個元素是c。

其中,第二種方式可以和第三種方式混合使用:

alphas=([2]=c  [0]=a [1]=b d e)

當使用這種方式宣告時,d和e的索引號直接順接前面指定的索引,因此,本例中,d的索引號為2,e的索引號為3,因此,整個陣列就是a b d e,原來索引2的元素c被d覆蓋

為陣列單個元素賦值

如果想為陣列單個元素賦值,直接使用alpha[index]=value

為整個陣列賦值

如果重新為整個陣列賦值,可以直接使用宣告的第二種或者第三種或者兩者的混合形式。重新為整個陣列賦值之後,陣列原來的值就lost了

引用陣列單個元素

引用陣列單個元素使用$,比如$引用的就是元素b。而直接$alphas引用的陣列的第0個元素。

引用整個陣列

引用整個陣列可以使用*和@符號,其中的差別和命令列引數一樣。完全取決於有沒有加雙引號,如果不加雙引號,則兩者是一樣的。引用形式為$或者$

移除陣列單個元素

alphas=(a b c)

unset alphas[

1]

上面**首先宣告了乙個包含3個元素的陣列alphas,之後移除了第1個元素。這裡需要注意的是,雖然移除了第乙個元素,但是不表示$就是c,相反,c仍然是第2個元素,用$引用。也就是說,此時陣列alphas中只有2個元素,第0個元素a,第2個元素c。

移除整個陣列

alphas=(a b c)

unset alphas 或者 unset alphas[*] 或者 unset alphas[@]

獲取陣列中每乙個元素的對應索引

alphas=([0]=a [5]=b [100]=c)

echo $ 或者 echo $

上面**可以獲取陣列alphas中元素的索引值:0 5 100

獲取單個元素的長度

想要獲取陣列中單個元素的長度,使用$

獲取整個陣列的長度

想要獲取整個陣列的長度,使用$或者$

Shell中的陣列

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

Shell中的陣列

二維陣列 構造成這樣 a 1 2 3 4 5 6 7 8 9 然後操作的時候利用第i行j列的元素等於i len j,len是陣列的第二維度大小,這樣做有時候更簡單,但是就必須得控制一下邊界了,比如3 3的陣列,你可能初始化只給出8個元素。一 陣列和字串 array 3 a b c echo arra...

shell中的陣列

shell作為一門語言那肯定是不能缺少陣列了,下面記錄了shell中陣列的一些相關內容。bash 提供了一維陣列變數。任何變數都可以作為乙個陣列 內建命令 declare 可以顯式地定義陣列。陣列的大小沒有上限,也沒有限制在連續對成員引用和賦值時有什麼要求。陣列以整數為下標,從 0 開始。下面的示例...