Linux shell之数组使用

来源:互联网 发布:如何查看淘宝卖家电话 编辑:程序博客网 时间:2024/05/21 06:27
1.数组定义:a=(1 2 3 4 5)

2.数组引用:${a[@]}

apuser@wenyangubtpc:~$ echo ${a[@]}1 2 3 4 5

3.数组长度:${#a[@]}

apuser@wenyangubtpc:~$ echo ${#a[@]}5

4.打印数组:echo ${a[*]}

apuser@wenyangubtpc:~$ echo ${a[*]}1 2 3 4 5

5.数组元素引用:${a[2]} 用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容

apuser@wenyangubtpc:~$ echo ${a[2]}3apuser@wenyangubtpc:~$ echo ${a[@]}1 2 3 4 5apuser@wenyangubtpc:~$ echo ${a[*]}1 2 3 4 5

6.数组元素赋值:a[1]=100 直接通过数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素

apuser@wenyangubtpc:~$ a[1]=100apuser@wenyangubtpc:~$ a[6]=1000apuser@wenyangubtpc:~$ echo ${a[*]}1 100 3 4 5 1000

7.清空数组:unset a

apuser@wenyangubtpc:~$ unset aapuser@wenyangubtpc:~$ echo ${a[*]}apuser@wenyangubtpc:~$ 

8.删除数组元素:unset a[1] =>结果(1 3 4 5) unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

apuser@wenyangubtpc:~$ echo ${a[*]}1 100 3 4 5 1000apuser@wenyangubtpc:~$ unset a[1]apuser@wenyangubtpc:~$ echo ${a[*]}1 3 4 5 1000

9.分段获取数组:${a[@]:0:3} 通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组

apuser@wenyangubtpc:~$ echo ${a[@]:0:3}1 3 4

10.数组元素替换:${a[@]/3/100} ${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,替换产生新的数组内容

apuser@wenyangubtpc:~$ echo ${a[@]:0:3}1 3 4apuser@wenyangubtpc:~$ echo ${a[@]/3/100}1 100 4 5 1000

11.字符串转数组:str="12 34 56"  arr=($str)
0 0