[Linux]shell基礎教程3-陣列
阿新 • • 發佈:2018-12-29
原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格
原文連結:https://blog.csdn.net/humanking7/article/details/84556303
文章目錄
環境
ubuntu 16.04
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
1. Shell
陣列定義
在之前的 shell基礎教程1-變數、字串、陣列、註釋 已經寫過了,現在這個增加一些例子。
陣列中可以存放多個值。Bash Shell
只支援一維陣列
(不支援多維陣列
),初始化時不需要
定義陣列大小
。
陣列元素
的下標
由0
開始。
Shell
陣列用括號來表示,元素用"空格"
符號分割開,語法格式如下:
# 方式1:定義陣列: array_name=(value1 ... valuen) # 方式2:也可以使用下標來定義陣列: array_name[0]=value0 array_name[1]=value1 array_name[2]=value2
2. 讀取陣列
讀取陣列元素值的一般格式是:
${array_name[index]}
例子:
#!/bin/bash
# author:Q
# url:http://blog.csdn.net/humanking7/
# 第1種定義方式
my_arr_1=(A B "C")
# 第2種定義方式
my_arr_2[0]=1
my_arr_2[1]=2
my_arr_2[2]=3
echo "========================"
echo "顯示第1個數組 my_arr_1 元素:"
echo "第1個元素為: ${my_arr_1[0]}"
echo "第2個元素為: ${my_arr_1[1]} "
echo "第3個元素為: ${my_arr_1[2]}"
echo "========================"
echo "顯示第2個數組 my_arr_2 元素:"
echo "第1個元素為: ${my_arr_2[0]}"
echo "第2個元素為: ${my_arr_2[1]}"
echo "第3個元素為: ${my_arr_2[2]}"
執行效果:
[email protected]:~# ./t2.sh
========================
顯示第1個數組 my_arr_1 元素:
第1個元素為: A
第2個元素為: B
第3個元素為: C
========================
顯示第2個數組 my_arr_2 元素:
第1個元素為: 1
第2個元素為: 2
第3個元素為: 3
3. 獲取陣列中的所有元素
使用@
或 *
可以獲取陣列中的所有元素
例子:
#!/bin/bash
# author:Q
# url:http://blog.csdn.net/humanking7/
# 第1種定義方式
my_arr_1=(A B "C")
# 第2種定義方式
my_arr_2[0]=1
my_arr_2[1]=2
my_arr_2[2]=3
echo "========================"
echo "顯示第1個數組 my_arr_1 元素:"
echo "第1個元素為: ${my_arr_1[0]}"
echo "第2個元素為: ${my_arr_1[1]}"
echo "第3個元素為: ${my_arr_1[2]}"
echo "========================"
echo "顯示第2個數組 my_arr_2 元素:"
echo "第1個元素為: ${my_arr_2[0]}"
echo "第2個元素為: ${my_arr_2[1]}"
echo "第3個元素為: ${my_arr_2[2]}"
echo "========================"
echo "陣列1的元素為: ${my_arr_1[*]}"
echo "陣列2的元素為: ${my_arr_2[@]}"
執行效果:
[email protected]:~# ./t2.sh
========================
顯示第1個數組 my_arr_1 元素:
第1個元素為: A
第2個元素為: B
第3個元素為: C
========================
顯示第2個數組 my_arr_2 元素:
第1個元素為: 1
第2個元素為: 2
第3個元素為: 3
========================
陣列1的元素為: A B C
陣列2的元素為: 1 2 3
4. 獲取陣列的長度
獲取陣列長度的方法與獲取字串長度的方法相同。
${#array_name[*]}
# 或者
${#array_name[@]}
例子:
#!/bin/bash
# author:Q
# url:http://blog.csdn.net/humanking7/
my_arr_1=(A B "C")
# 第2種定義方式
my_arr_2[0]=1
my_arr_2[1]=2
my_arr_2[2]=3
my_arr_2[4]=5
# 注意,沒有my_arr_2[3]
echo "========================"
echo "顯示第1個數組 my_arr_1 元素:"
echo "第1個元素為: ${my_arr_1[0]}"
echo "第2個元素為: ${my_arr_1[1]}"
echo "第3個元素為: ${my_arr_1[2]}"
echo "========================"
echo "顯示第2個數組 my_arr_2 元素:"
echo "第1個元素為: ${my_arr_2[0]}"
echo "第2個元素為: ${my_arr_2[1]}"
echo "第3個元素為: ${my_arr_2[2]}"
echo "第4個元素為: ${my_arr_2[3]}"
echo "第5個元素為: ${my_arr_2[4]}"
echo "========================"
echo "陣列1的元素為: ${my_arr_1[*]}"
echo "陣列2的元素為: ${my_arr_2[@]}"
echo "========================"
echo "陣列1的元素個數為: ${#my_arr_1[*]}"
echo "陣列2的元素個數為: ${#my_arr_2[@]}"
執行效果:
[email protected]:~# ./t2.sh
========================
顯示第1個數組 my_arr_1 元素:
第1個元素為: A
第2個元素為: B
第3個元素為: C
========================
顯示第2個數組 my_arr_2 元素:
第1個元素為: 1
第2個元素為: 2
第3個元素為: 3
第4個元素為:
第5個元素為: 5
========================
陣列1的元素為: A B C
陣列2的元素為: 1 2 3 5
========================
陣列1的元素個數為: 3
陣列2的元素個數為: 4
注意:
上面的例子(第1個定義的陣列,my_arr_2
),下標已經到了4
,理論上應該有5
個元素,但是實際上只有4
個元素
5. 參考文獻:
OK!
以上,Enjoy~