shell 中的陣列的應用

2021-05-21 18:02:57 字數 866 閱讀 4299

linux 的shell提供了簡單的陣列操作功能,下面進行簡單的介紹

1、建立乙個陣列

和普通的變數相同,shell中的陣列不需要宣告,直接定義並使用即可。對於乙個變數,如果按照資料的方式去訪問它,那麼shell就會將其當做乙個陣列變數來操作。比如:

h[0]=「1」

h[1]="2"

h[2]="3"

就定義了乙個陣列h,其中第乙個元素是字元轉「1」,第二個元素是字串「2」,第三個元素是字串「3」。如果你嘗試訪問第四個元素,那麼會得到空,也就是什麼也沒有。或者你也可以通過另一種更快捷的方式來定義乙個陣列:

h = (「1」  「2」  「3」)

陣列的下表不一定是連續的數字,比如你可以定義只含有兩個元素的陣列h如下:

h[0] = 100

h[100] = 0

該陣列中只有兩個元素,下表分別為0和100。

2、訪問陣列的元素

你可以通過下表來訪問陣列的元素,比如訪問陣列h下表為2的元素$。如果給出的下表在資料中不存在,那麼將得到空。如果給出的不是數字下表,那麼返回陣列的第乙個元素。比如$將會返回陣列中第乙個元素。

如果想要在乙個for迴圈中訪問所有的陣列元素,可以通過$或者$來處理,比如:

for e in $

doecho $e

done

如果想要得到陣列中元素的個數,可以使用$來操作。比如:

echo $    #輸出陣列h中元素的個數

3、shell陣列應用小例子

下面是乙個shell指令碼,它讀入一定行的資料,輸出文字行的個數,並按照相反的順序輸出出來

Shell中的陣列應用

使用括號定義陣列,陣列元素間用空格來分隔 array 1 hello man a 號兩邊不能有空格,元素資料型別可以不一致 echo 輸出陣列的所有元素nums 29 10013891 44 nums 6 898 動態新增元素 echo nums 172.17 2.32 172.17 2.33 17...

shell中for的應用

root localhost hh.sh bin bash read p 請輸入乙個小於100的整數 aa if aa eq 1 then echo 和等於 aa sum 0 第乙個for的賦值 sum1 0 第二個for的賦值 elif aa gt 1 aa lt 100 then for i 1...

Shell中的陣列

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