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
下一篇 2015-05-11

相關推薦

  • Linux批量創建用戶、passwd、shadow、組管理、group、gshadow、默認配置文件login.defs、切換用戶su、提升權限(一)

    Linux批量創建用戶、passwd、shadow、組管理、group、gshadow、默認配置文件login.defs、切換用戶su、提升權限 在Linux中用戶運行某個程序時,該程序的權限屬于當前用戶,進程所能夠訪問資源的權限取決于進程的運行者的身份。如果用戶的id號為0,即使不叫root,他也是管理員;就算名字叫root它也可能是普通用戶。當有多個不同…

    Linux干貨 2016-08-03
  • httpd服務歸納:網絡服務基礎篇

    一、網絡傳輸基礎     1. 套接字:兩類          1) Unix Sock: 一種本地文件系統          2) Socket: IP port (I…

    Linux干貨 2015-05-04
  • ?grub應用之提供單獨bash系統

    grub應用之提供單獨bash系統     1.掛載新硬盤,并創建好三個分區,第一分區為boot分區,第三分區為根分區              2.創建掛載目錄,并掛boot分區   &n…

    Linux干貨 2017-01-13
  • Linux基礎

    一、計算機組成及其功能 ENIARC: CPU:運算器、控制器、寄存器、緩存 存儲器:內存,RAM(Random Access Memory)         Input:下指令,提供數據等; Output:輸出數據加工的結果;  程序:指令+數據 算法+數據結構&nb…

    Linux干貨 2016-10-30
  • $@與$*的不同之處

    $@與$*的不同之處 $*: 把我們傳遞給腳本的參數全部合為一個字節,當成一個字符串或者參數來使用。 $@: 把我們傳遞給腳本的所有參數,每個參數都為獨立字符串,當我們用 \((n) 來調用的時候, 輸入參數的位置為第幾個,那我們就用用\)n來調用第幾個,一對應。 下面我們用代碼來看一下這兩個的區別: 創建一個簡單的腳本讓他輸出我們輸入的多個參數:&#822…

    2017-06-06
  • 20171121 grep 正則表達式

    diff與patch ,grep 正則表達式

    2017-11-21
欧美性久久久久