Bash Shell之數組簡介

Bash Shell之數組簡介

 

一、數組基本概念

  數組是內存中的存儲空間,連續的多個存儲單元;bash中只支持一維數組,支持稀疏格式 ,參數個數沒有限制。

二、數組基本語法格式

  1、聲明一個數組

         declare -a array  其實不用聲明,按數組方式直接賦值給變量即可

  2、表示方式:數組名+索引

       索引的表示方式:數字索引:a[index]。例如:a[0], a[1]
         bash 4.0
以后支持關聯數組.declare -A指明是關聯數組例如:a[hello], a[hi]
       
在引用是必須使用{}。例如${a[0]}

  3、數組賦值:

         一次對多個元素賦值。例如:a=(red blue yellow green)

                 按索引進行賦值。例如:a=([0]=green [3]=red [2]=blue [6]=yellow)

                 命令替換賦值。例如:logs=(/var/log/*.log)

                 用戶輸入賦值。例如:read -a c,賦值后用echo ${c[0]}查看

  4、數組訪問

       echo ${#a[i]}獲取這個數組中第i個小標的元素值

                echo ${#a[*]}echo ${#a[@]} :獲取這個數組中數組元素的總個數。

  5、從數組中挑選元素

         ${ARRAY[@]}: 取出所有元素。例如:echo ${a[@]}           
                ${ARRAY[@]:offset:number}
。例如:echo ${a[@]:1:1}
                                    offset:
偏移的元素個數
                                    number: 取出的元素的個數 
                ${ARRAY[@]:offset}
:取出偏移量后的所有元素 。例如:echo ${a[@]:1}

6、向數組復制和追加元素:

                把數組中的個數當做該數組的下標。
                                  declare -a mylogs
                                  tmp=${#mylogs[@]}
                                  mylogs[$tmp]="dasd"
               
刪除數組用的元素:unset a[i]   刪除所有原始unset a[*] unset a[@]

         數組復制:b[$index]=${a[$i]}

三、實例解析:

         1、寫一個腳本,生成10個隨機數,保存至數組中;而后顯示數組下標為偶數的元素(或者將偶數元素賦值給一個新的數組并顯示);

           1.png

         2.png

         2 生成10個隨機數,升序排序

         3.png

         4.png

         注意:在Bash Shell數組互換時要注意其格式;賦值給tempa[$i]的方式不一樣;

         3、打印九九乘法表

         5.png

         6.png

         

原創文章,作者:wxdz_2004(古雨秋),如若轉載,請注明出處:http://www.www58058.com/4190

(0)
wxdz_2004(古雨秋)wxdz_2004(古雨秋)
上一篇 2015-05-11 12:21
下一篇 2015-05-11 14:07

相關推薦

  • 8-4 文本處理工具

    本節主要了解文本處理工具 文件查看命令:cat  tac  rev     cat [OPTION]… [FILE]…         -E:顯示行結束符$    &…

    Linux干貨 2016-08-07
  • 馬哥教育網絡班22期+第六周課程練習

    vim編輯器的使用總結    vim編輯器是模式化的全屏文本編輯器,有三種基本模式:        編輯模式        輸入模式   &…

    Linux干貨 2016-10-24
  • mysql主從復制以及擴展

    一、MySQL簡單復制相關概念:    1. mysql復制的意義:Mysql復制是使得mysql完成高性能應用的前提    2. mysql復制的機制:             SLAVE端線程: …

    Linux干貨 2015-12-16
  • netstat命令和ss命令

    詳解netstat命令和ss命令

    Linux干貨 2018-01-01
  • 第七周

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; fdisk /dev/sdb歡迎使用 fdisk (util-li…

    Linux干貨 2016-09-19
  • 學習積累01#計算機組成#Linux版本#基本命令

    第一周的積累 問題1:描述計算機的組成及其功能 CPU:中央處理器,主要功能是進行運算和邏輯運算,內部大致可分為控制單元、邏輯算術單元、存儲單元; 主板:核心部件,是電腦的“脈絡”,CPU\內存\控制核心電路均安裝在主板上,各種外部設備也通過主板上的插槽相互連接; 硬盤:常見的外存儲器,容量大,保存時間長、安全性高。接口主要分為IDE、SATA、SCSI。 …

    Linux干貨 2016-10-25
欧美性久久久久