linux shell 陣列的使用

2022-08-19 09:18:08 字數 1635 閱讀 7269

在linux平台上工作,我們經常需要使用shell來編寫一些有用、有意義的指令碼程式。有時,會經常使用shell陣列。那麼,shell中的陣列是怎麼表現的呢,又是怎麼定義的呢?接下來逐一的進行講解,shell中的陣列。

何為陣列?學過計算機程式語言的同學都知道,陣列的特性就是一組資料型別相同的集合(不包括有一些程式語言提出來的關聯陣列的概念)。那麼shell中陣列是怎麼定義的呢,我們來看兩種資料型別:一是數值型別,二是字串型別;雖然shell本身是弱型別的,但也可以這麼區分。

數值型別的陣列:一對括號表示陣列,陣列中元素之間使用「空格」來隔開。

舉個列子: 

arr_number=(1 2 3 4 5);

字串型別陣列:同樣,使用一對括號表示陣列,其中陣列中的元素使用雙引號或者單引號包含,同樣使用「空格」來隔開。

arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');

我們使用數值型別陣列arr_number=(1 2 3 4 5)做為源陣列進行相關的講解:獲取陣列長度,讀取某個下標的值,對某個下標賦值,刪除、分配和替換以及遍歷。提乙個知識點,我們在shell裡面想獲取某個變數的值,使用$符開頭,如:$a或者$即可。

獲取陣列長度

arr_length=$或$均可,即形式:$ 可得到陣列的長度。

讀取某個下標的值

arr_index2=$,即形式:$

對某個下標賦值

這裡需要提出兩個問題:

第乙個問題是如果該下標元素已經存在,會怎麼樣?

答:會修改該下標的值為新的指定值。

例如:arr_number[2]=100,陣列被修改為(1 2 100 4 5)

第二個問題是如果指定的下標已經超過當前陣列的大小,如上述的arr_number的大小為5,指定下標為10或者11或者大於5的任意值會如何?

答:新賦的值被追加到陣列的尾部。

例如:arr_number[13]=13,陣列被修改為(1 2 100 4 5 13)

刪除操作

清除某個元素:unset arr_number[1],這裡清除下標為1的陣列;

清空整個陣列:unset arr_number;

分片訪問

分片訪問形式為:$,注意,不包括結束下標元素的值。

例如:$,這裡分片訪問從下標為1開始,元素個數為4。

模式替換

形式為:$

例如:$

陣列的遍歷

陣列遍歷我們使用for語句來演示:

for v in $; do

echo $v;

done

通過上述,我們講解了shell中陣列的定義,已經對陣列的相關操作有獲取長度,讀取某下標值,對某個下標賦值,刪除、分配和替換以及遍歷。通過上述的講解,希望能夠給與讀者在linux平台中使用shell一些幫助,感謝讀者耐心的閱讀。

linux shell陣列使用

摘自 陣列的定義與賦值 1 array value1 valuen 此時下標從0開始 一對括號表示是陣列,陣列元素用 空格 符號分割開。2 array index value 直接通過 陣列名 下標 就可以對其進行引用賦值,如果下標不存在,自動新增新乙個陣列元素 獲取陣列內容 得到第二個元素。得到所...

linux shell 陣列使用

linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈 運算。已經資料型別方面都是不能比較的。下面是個人在使用時候,對它在陣列方面一些操作進行的總結。1.陣列定義 chengmo centos5 a 1 2 3 4 5 chengmo centos5 echo a 1一對...

Linux shell之陣列使用

1.陣列定義 a 1 2 3 4 5 2.陣列引用 apuser wenyangubtpc echo 1 2 3 4 5 3.陣列長度 apuser wenyangubtpc echo 5 4.列印陣列 echo apuser wenyangubtpc echo 1 2 3 4 5 5.陣列元素引用...