1. 程式人生 > >[Linux]shell基礎教程3-陣列

[Linux]shell基礎教程3-陣列



原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格
原文連結: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個元素

參考文獻1

5. 參考文獻:

  1. http://www.runoob.com/linux/linux-shell-array.html

OK!
以上,Enjoy~


讚賞碼New