本文旨在複習Shell腳本編程中數組的定義和賦值、讀取數組、以及獲取數組的長度
知識儲備
數組:連續的多個獨立的內存空間,每個內存空間相當於一個變量
在邏輯上,我們看到的數組是“連續的”,但是映射到真實物理內存空間上是“雜亂的”
bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。
數組2元素:數組名[索引],依據索引的不同可以分爲以下2種
數組定義和賦值
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 | ${array[*]} |
例1:輸入5個數字,存入數組,引用該數組倒序輸出這5個數字
代碼實現
1 | #!/bin/bash |
獲取數組長度
獲取數組長度分爲獲取數組元素個數,還可以獲取指定索引元素值的長度
● 獲取數組元素的個數,一般格式爲:
1 | length=${#array[@]} |
例1:請注意#千萬不能省略,看下面這個例子
請注意:當#號省略後,就變成了將數組所有元素複製給變量length,如果要打印個數請記得#
● 獲取指定索引數元素值長度,一般格式爲:
1 | length=${#array[index]} |
例2:獲取上述例子中第二個元素color的長度值