Linux之shell数组

bash支持一维数组,不支持多维数组,然后数组大小不限定


数组下标(个人认为类似索引)从0开始


这个下标可以用整数或者算术表达式都可行,然后它们的值必须大于0,可以等于0


1.定义数组:
定义一个数组,用括号表示
数组元素之间使用空格符号分割开
如:

name=(a0 a1 a2 a3 a4)

name=(
a0
a1
a2
a3
a4
)

定义分量,可以不连续,且下标无限大
 

name[0]=1
name[1]=2
name[2]=3

2.数组的读取:

代码如下

#!/bin/bash
name=(a0 a1 a2 a3 a4)
shu=${name[2]}
echo $shu
echo ${name[2]} #这个与上面输出效果相同

输出结果如下(记得先赋权):

[localhost@localhost ~]./1.sh
a2
a0 a1 a2 a3 a4

3.使用@符号获取到数组中所有的元素
如:

#!/bin/bash
name=(a0 a1 a2 a3 a4)
shu=${name[2]}
echo $shu
echo ${name[@]}

输出如下:

[localhost@localhost ~]./1.sh
a2
a0 a1 a2 a3 a4

4.获取数组的长度(与获取字符串长度的方法一样):

#!/bin/bash
name=(a0 a1 a2 a3 a4)
echo ${#name[@]} #获取这个数组元素的个数
#或者
echo ${#name[*]}
echo ${#name[n]} #获取这个数组元素的长度

输出结果如下:

[localhost@localhost ~]./1.sh
5
5
2

5.数组的拼接:
使两个数组拼接在一起,组成一个新数组
例子(代码)如下:

#!/bin/bash
a=(1 2 3) #定义数组a
b=(4 5 6) #定义数组b
add=(${a[*]} ${b[@]}) #用新的数组add把a和b两个数组括起来,形成一个新的数组
echo ${add[@]}

输出如下:

[root@slave2 ~]# ./1.sh
1 2 3 4 5 6

完!

上一篇:剑指 Offer 47. 礼物的最大价值


下一篇:线性代数:向量组的线性相关性