一. 数组简介
Shell中数组对元素个数没数组有限制,但只支持一维数组。Shell变量是弱类型性的,不要求每个元素都是相同类型。
二. 数组定义
1、 定义的同时赋值
[root@tbds-10-1-0-38 lib]# declare -a Arr6=('1' 'john')
[root@tbds-10-1-0-38 lib]# echo ${Arr6[1]}
john
2、 不使用关键字
[root@tbds-10-1-0-38 lib]# Arr7=(1 "ni" 2)
[root@tbds-10-1-0-38 lib]# echo ${Arr7[0]}
1
[root@tbds-10-1-0-38 lib]# echo ${Arr7[1]}
ni
3、 跳号赋值
[root@tbds-10-1-0-38 lib]# Score=([2]=98 [5]=79 [6]=88)
[root@tbds-10-1-0-38 lib]# echo ${Score[2]}
98
三. 操作数组
1. 取值
取单个值
[root@tbds-10-1-0-38 lib]# echo ${Score[2]}
98
取所有的值
[root@tbds-10-1-0-38 lib]# echo ${Score[*]}
98 79 88
2. 数组的长度
数组的元素个数
[root@tbds-10-1-0-38 lib]# echo ${#Score[*]}
3
某个元素的长度
[root@tbds-10-1-0-38 lib]# echo ${#Score[2]}
2
3. 数组截取
可以是某个元素的一部分,也可以截取整个数组的某几个元素
[root@tbds-10-1-0-38 lib]# arrDemo=(1 "nihao" "hello" "how are you")
[root@tbds-10-1-0-38 lib]# echo ${arrDemo[1]:0:3}
nih
[root@tbds-10-1-0-38 lib]# echo ${arrDemo[*]:0:3}
1 nihao hello
4. 连接数组
[root@tbds-10-1-0-38 lib]# Conn=(${arrDemo[@]} ${Arr7[@]})
[root@tbds-10-1-0-38 lib]# echo ${Conn[*]}
1 nihao hello how are you 1 ni 2
5. 替换元素
[root@tbds-10-1-0-38 lib]# arrDemo=(${arrDemo[@]/hello/HELLO})
[root@tbds-10-1-0-38 lib]# echo ${arrDemo[@]}
1 nihao HELLO how are you
6. 取消元素或数组
[root@tbds-10-1-0-38 lib]# unset arrDemo[1]
[root@tbds-10-1-0-38 lib]# echo ${arrDemo[@]}
1 HELLO how are you
[root@tbds-10-1-0-38 lib]# unset arrDemo
[root@tbds-10-1-0-38 lib]# echo ${arrDemo[@]}