[Linux]shell基础教程3-数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/humanking7/article/details/84556303


原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接: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]}"

执行效果:

root@vultr:~# ./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[@]}"

执行效果:

root@vultr:~# ./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[@]}"

执行效果:

root@vultr:~# ./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

猜你喜欢

转载自blog.csdn.net/humanking7/article/details/84556303