shell 數組介紹及相關操作

來源:互聯網
上載者:User

標籤:包括   變數   for   one   strong   刪除   取數   個數   下標   

引言

  在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或者${a}即可。

  擷取數組長度

  arr_length=${#arr_number[*]}或${#arr_number[@]}均可,即形式:${#數組名[@/*]} 可得到數組的長度。

  讀取某個下標的值

  arr_index2=${arr_number[2]},即形式:${數組名[下標]}

  對某個下標賦值

  這裡需要提出兩個問題:

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

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

    例如: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;

  分區訪問

    分區訪問形式為:${數組名[@或*]:開始下標:結束下標},注意,不包括結束下標元素的值。

    例如:${arr_number[@]:1:4},這裡分區訪問從下標為1開始,元素個數為4。

  模式替換

    形式為:${數組名[@或*]/模式/新值}

    例如:${arr_number[@]/2/98}

  數組的遍曆

    數組遍曆我們使用for語句來示範:

    ${arr_number[@]}表示整個數組。

    for v in ${arr_number[@]}; do

      echo $v;

    done

 

shell 數組介紹及相關操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.