shell腳本編程之數組

   數組就是相同數據類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區分他們的變量的集合,這個名字稱為數組名,編號稱為下標。組成數組的各個變量稱為數組的元素。數組是在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。

一、數組的表示方式

  1、下標數組

   下標必須為整數,格式:數組名[下標],下標默認從0開始。

   shell支持稀疏數組,下標整數不需要連續。

   聲明方式:declare -a 數組名

  2、關聯數組

   關聯數組可以使用任意的字符串作為下標(不必是整數)來訪問數組元素。bash4.0開始支持關聯數組。

    格式:數組名[任意字符串]

    聲明方式:declare -A 關聯數組

  另外,shell只支持一維數組,不支持多維數組。

二、數組的賦值

  1、一次對一個元素賦值

1.jpg

  2、一次對全部元素賦值

2.jpg

  3、按索引進行賦值

3.jpg

  4、命令替換賦值

5.jpg

  5、用戶輸入

    使用read命令實現交互賦值,格式:read -a 數組名

6.jpg

三、數組的訪問

  通過操作語法來實現對數組元素的訪問。

  語法格式有以下幾種:

    數組的長度:

      ${#ARRAY[*]}:顯示元素個數;

      ${#ARRAY[@]}:顯示元素個數;

      ${#ARRAY[#]}:第#個元素的字符個數;

      ${#ARRAY}:第0個元素的字符個數;

    數組的元素:

      ${ARRAY[*]}:顯示所有元素內容;

      ${ARRAY[@]}:顯示所有元素內容;

      ${ARRAY[#]}:顯示第#個元素;

      ${ARRAY}:顯示第0個元素;

    數組的鍵值:

      $[!ARRAY[*]}:顯示所有的鍵值;

      $[!ARRAY[@]}:顯示所有的鍵值。

  實例:寫一個腳本,生成10個隨機數,保存至數組中,而后顯示數組下標為偶數的元素:

7.jpg 

四、從數組中挑選元素

  如果想要從數組中取出某幾個元素時,使用下標逐個查找比較麻煩,可以使用數組的偏移元素功能來簡化操作。

  語法格式:

    ${ARRAY[@]:offset:number}

      offset:偏移元素個數;

      number:取出的元素個數;

  實例:數組off_array中有6個元素,假設我們想要取3月到5月這三個值:

8.jpg

8.jpg

 如果想要取出偏移量之后的所有元素,省略掉nubmer即可,如:

9.jpg

五、數組復制

  $@:每個參數是一個獨立的串,建議使用;

  $*:所有元素當做一個串。

  實例:復制一個數組中下標為偶數的元素至新數組中:

11.jpg

六、從數組中刪除元素

  格式:unset 數組名[下標]

8.jpg

七、綜合實例

  生成10個隨機數,并對這10個隨機數進行排序。

1.jpg

2.jpg

 

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/10768

(0)
petmasterpetmaster
上一篇 2016-01-05 12:58
下一篇 2016-01-05 12:59

相關推薦

  • 第二周作業

    第二周

    Linux干貨 2017-12-11
  • CentOS 6.5 LVM磁盤管理學習筆記(二)

    ACTIVE            '/dev/vg51cto/LogVol04' [22.80 GiB]inherit  ACTIVE       …

    Linux干貨 2016-08-29
  • 學習宣言

            學習計劃:每天至少2個小時的學習,循序漸進,先通讀再精讀。         學習目標:成為運維的高手,走上人生巔峰。      &nb…

    Linux干貨 2016-10-25
  • Linux進程與作業1

    Linux進程與作業 操作系統的組成部分:硬件,kernel,lib, 系統調用–>調用kernel lib調用–> 庫調用,kernel調用 運行用戶代碼–>用戶模式–>用戶空間; 運行kernel–>內核模式–>內核空間; 內核的功用:進程管理,文件系統,網絡功能,內存管理,驅動程序,安全功能 C…

    Linux干貨 2016-08-02
  • MongoDB

    Edit MongoDB 手冊 MongoDB 手冊 第一章 Introduction MongoDB入門學習目錄(建議) Databases Collections Documents 第二章 部署安裝 1. Import the MongoDB public key 2. Configure the package management system (…

    Linux干貨 2015-01-12
  • rsync+inotify 實現數據實時同步

        Rsync (Rmote sync)是一款非常好的數據同步工具,能夠通過對比同步雙方的數據變動,實現增量同步,還可以通過LAN/WAN實現遠程多臺主機間文件的同步,還能結合crond任務計劃來執行自動備份,又可以結合ssh實現遠程數據備份的安全,種種特性使他看起來相當優秀。但如果需備份數據十分龐大時,它的不足之處就顯現出來了,比如…

    Linux干貨 2015-07-24
欧美性久久久久