[9-13]Shell系列8——數組

本文旨在複習Shell腳本編程中數組的定義和賦值、讀取數組、以及獲取數組的長度

知識儲備


  • 數組:連續的多個獨立的內存空間,每個內存空間相當於一個變量

  • 在邏輯上,我們看到的數組是“連續的”,但是映射到真實物理內存空間上是“雜亂的

  • bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。

  • 數組2元素:數組名[索引],依據索引的不同可以分爲以下2種

wKiom1YBVVah4QUcAAZPQEXvGiY088.bmp

數組定義和賦值


Shell中,用括號來表示數組,數組元素用“空格”符號分割開。

定義數組的一般形式爲:

1


array_name=(value1 value2 ... valueN)

賦值方式

(1)一次賦值一個元素

1


array[index]=value

(2)一次複製全部元素

1


array=("val1" "val2" ...)

(3)指定索引進行賦值

1


array=([0]="val1" [3]="val2")

(4)從用戶交互式輸入賦值

1


read -a array


讀取數組[引用數組]


讀取數組指定索引的元素值的一般格式是:

1


${array[index]}

還可以一次讀取所有數組中元素

1
2


${array[*]}
${array[@]}

例1:輸入5個數字,存入數組,引用該數組倒序輸出這5個數字

代碼實現

1
2
3
4
5
6
7
8
9
10
11


#!/bin/bash
for i in $(seq 0 4)
do 
    
read -p "Enter the 5 nums: " num
    Numarray[$i]=$num
done

for q in $(seq 4 -1 0)
do 
    echo ${Numarray[$q]}
done

wKiom1YBXBHSevIZAAkYIF5yCS8247.bmp


獲取數組長度


獲取數組長度分爲獲取數組元素個數,還可以獲取指定索引元素值的長度

獲取數組元素的個數,一般格式爲:

1
2
3


length=${#array[@]}
# 或者
length=${#array[*]}

例1:請注意#千萬不能省略,看下面這個例子

wKiom1YBXrKT_d-JAASIAAGHOA0752.bmp

請注意:當#號省略後,就變成了將數組所有元素複製給變量length,如果要打印個數請記得#


獲取指定索引數元素值長度,一般格式爲:   

1


length=${#array[index]}


例2:獲取上述例子中第二個元素color的長度值

wKiom1YBX9yTu6v4AAKTYL4vs6A888.bmp


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章