【CentOS 7Shell编程9】,shell中的数组#180301

hellopasswd


shell中的数组

  • 定义数组 a=(1 2 3 4 5);echo ${a[@]}

  • echo $(#a[@]}获取数组的元素个数

  • echo ${a[2]}读取第三个元素,数组从0开始

  • echo ${a[*]}等同于${a[@]}显示整个数组

  • 数组赋值

  • a[1]=100;echo ${a[@]}

  • a[5]=2;echo ${a[@]}如果下标不存在则会自动添加一个元素

  • 数组的删除

  • uset a;unset a[1]

  • 数组分片

  • a=(seq 1 5)

  • echo ${a[@]:0:3}从第一个元素开始,截取3个

  • echo ${a[@]:1:4}从第二个元素开始,截取4个

  • echo ${a[2]:0-3:2}从倒数弟3个元素开始,截取2个

  • 数组替换

  • echo ${a[@]/3/100}

  • a=(${a[@]/3/100})

定义数组

[root@localhost shell]# b=(1 2 3)

数组赋值

[root@localhost shell]# echo ${b[@]}
1 2 3
[root@localhost shell]# echo ${b[*]}
1 2 3
[root@localhost shell]# echo ${b[1]}
2
[root@localhost shell]# echo ${b[2]}
3
[root@localhost shell]# echo ${b[3]}

[root@localhost shell]# echo ${b[0]}
1

获取个数

[root@localhost shell]# echo ${#b[@]}
3
[root@localhost shell]# b[3]=a
[root@localhost shell]# echo ${b[*]}
1 2 3 a

数组的删除

[root@localhost shell]# unset b[3]
[root@localhost shell]# echo ${b[*]}
1 2 3
[root@localhost shell]# unset b
[root@localhost shell]# echo ${b[*]}

分片

[root@localhost shell]# a=(`seq 1 10`)
[root@localhost shell]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10
[root@localhost shell]# echo ${a[@]:3:4}
4 5 6 7
[root@localhost shell]# echo ${a[@]:0-3:2}
8 9

这里取后边3必须用0-3,不能用负数

替换

[root@localhost shell]# echo ${a[@]/8/6}
1 2 3 4 5 6 7 6 9 10

[root@localhost shell]# a=(${a[@]/8/6})
[root@localhost shell]# echo ${a[@]}
1 2 3 4 5 6 7 6 9 10


修改于 180301

猜你喜欢

转载自my.oschina.net/hellopasswd/blog/1626640