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 簡單多了 計算字串...