您的位置:首页 > 运维架构 > Shell

shell中的数组操作

2015-08-31 16:29 501 查看

1.数组定义,shell使用一对括号表示数组,数组元素间用”空格”分隔

# 空数组arr1
arr1=()
# 数组arr2,成员分别是1, 2, 3, 4, 5, 6
arr2=(1 2 3 4 5 6)


2.数组元素读取,格式:${数组名[下标]},下标从0开始,下标为*或@代表整个数组内容

[root@10 ~]# echo ${arr2[0]}
1

[root@10 ~]# echo ${arr2[*]}
1 2 3 4 5 6


3.遍历数组, foreach

for num in ${arr2[*]}; do
echo $num;
done;


4.数组长度,格式:${#数组名[*或@]}

[root@10 ~]# echo ${#arr2[*]}
6


5.赋值,格式:数组名[下标]=值,如果下标不存在,则新增数组元素; 下标已有,则覆盖值

[root@10 ~]# arr2[6]=7
[root@10 ~]# echo ${arr2[*]}
1 2 3 4 5 6 7
[root@10 ~]# arr2[0]=-1
[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7


6.分片,格式:${数组名[*或@]:起始位:长度},截取部分数组,返回字符串,中间用空格分隔;将结果使用“()”,则得到新的切片数组

[root@10 ~]# echo ${arr2[*]:0:3}
-1 2 3
[root@10 ~]# arr3=(${arr2[*]:0:3})
[root@10 ~]# echo ${arr3[*]}
-1 2 3


7.替换元素,格式:${数组名[*或@]/查找字符/替换字符}, 不会修改原数组;如需修改的数组,将结果使用“()”赋给新数组

[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7
[root@10 ~]# echo ${arr2[*]/7/10}
-1 2 3 4 5 6 10
[root@10 ~]# arr4=(${arr2[*]/7/10})
[root@10 ~]# echo ${arr4[*]}
-1 2 3 4 5 6 10


8.删除数组,格式:unset 数组,清除整个数组; unset 数组[下标],清除单个元素

[root@10 ~]# echo ${arr2[*]}
-1 2 3 4 5 6 7
[root@10 ~]# unset arr2[0]
[root@10 ~]# echo ${arr2[*]}
2 3 4 5 6 7

[root@10 ~]# unset arr2
[root@10 ~]# echo ${arr2[*]}

[root@10 ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: