Shell数组的增删改查
Shell数组的增删改查
shell数组的定义及取值:
a=(1 2 3)
[root@bogon tmp]# echo ${a[*]}
1 2 3
[root@bogon tmp]# echo ${a[@]}
1 2 3
增加数组元素:
[root@bogon tmp]# a[3]=4
[root@bogon tmp]# echo ${a[@]}
1 2 3 4
修改数组元素:
[root@bogon tmp]# a[0]=freddy
[root@bogon tmp]# echo ${a[@]}
freddy 2 3 4
清空数组:
[root@bogon tmp]# unset a
[root@bogon tmp]# echo ${a[@]}
删除数组的指定值:
[root@bogon tmp]# echo ${a[@]}
1 2 3
[root@bogon tmp]# unset a[0]
[root@bogon tmp]# echo ${a[@]}
2 3
取指定数组范围:
[root@bogon tmp]# a=(1 2 3 4 5)
#从下标1开始取,取3位。
[root@bogon tmp]# echo ${a[@]:1:3}
2 3 4
把数组 值3替换成freddy字符串:
[root@bogon tmp]# echo ${a[@]/3/freddy}
1 2 freddy 4 5
[root@bogon tmp]#
统计数组中的值得个数:
a = (a b c)
[root@bogon tmp]# echo ${#a[*]}
3
统计数组内的元素个数:
[root@slavedb test]# a=(1 2 3)
[root@slavedb test]# echo ${#a[@]}
3
统计变量的长度是多少:
[root@slavedb test]# b=1234
[root@slavedb test]# echo ${#b}
4
取数组内的单个元素:
[root@slavedb test1]# a=(a b c)[root@slavedb test1]# echo ${a[0]}
a
[root@slavedb test1]# echo ${a[1]}
b
[root@slavedb test1]# echo ${a[2]}
c
取出数组内所有的值:
[root@slavedb array]# echo ${array[@]}
1 2 3
或
[root@slavedb array]# echo ${array[*]}
1 2 3
截取数组元素的一部分:
[root@slavedb array]# array=(1 2 3 4 5)
[root@slavedb array]# echo ${array[@]:1:3}
2 3 4
[root@slavedb array]#
修改数组,并没有真正的修改:
[root@slavedb array]# echo ${array[@]/2/888}
1 888 3 4 5
[root@slavedb array]# array=(1 2 3 4 5)
[root@slavedb array]# echo ${array[@]}
1 2 3 4 5
[root@slavedb array]# echo ${array[@]/2/888}
1 888 3 4 5
[root@slavedb array]#
数组key=value的定义方法:
[root@slavedb array]# array=([1]=one [2]=two [3]=three)
[root@slavedb array]# echo ${array[@]}
one two three
[root@slavedb array]# echo ${array[1]}
one
[root@slavedb array]# echo ${array[3]}
three
数组常用的定义方法:
[root@slavedb array]# array=($(pwd) $(w) $(uptime))
[root@slavedb array]# echo ${array[0]}
/tmp/array
[root@slavedb array]#