[Linux]shell基础教程3-数组
原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.****.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.****.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.****.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.****.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~