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