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
完!