root@ubuntu:~# arr=(1 2 3 4 5 6)
#打印数组字符串下标是1的元素
root@ubuntu:~# echo ${arr[1]} 2
#打印默认第一个元素
root@ubuntu:~# echo $arr 1
#打印数组所有元素
root@ubuntu:~# echo ${arr[@]} 1 2 3 4 5 6
#打印数组长度
root@ubuntu:~# echo ${#arr[@]} 6
#打印下标是3的长度
root@ubuntu:~# echo ${#arr[3]} 1
#打印从第一道第二
root@ubuntu:~# echo ${arr[@]:1:2} 2 3
#打印从第二个开始到最后
root@ubuntu:~# echo ${arr[@]:2} 3 4 5 6
#打印从开始到第二个
root@ubuntu:~# echo ${arr[@]::2} 1 2
#数组赋值
root@ubuntu:~# array=(one two three) root@ubuntu:~# echo ${array[@]} one two three root@ubuntu:~# echo ${array[0]} one root@ubuntu:~# echo ${array[1]} two root@ubuntu:~# array[3]=3 #替换 root@ubuntu:~# echo ${array[@]} one two three 3
#删除
root@ubuntu:~# echo ${array[@]} one two three 3 root@ubuntu:~# unset array[2] root@ubuntu:~# echo ${array[@]} one two 3
#替换
相当于sed 没加-i,只修改参数输出,不修改原来数据
root@ubuntu:~# array=(one two three) root@ubuntu:~# echo ${array[@]} one two three root@ubuntu:~# echo ${array[@]/one/1} 1 two three root@ubuntu:~# echo ${array[@]} one two three
删除
root@ubuntu:~# array=(one two three four five) root@ubuntu:~# echo ${array[@]} one two three four five #从左边开始匹配最短的数组元素,并删除 root@ubuntu:~# echo ${array[@]#o*} ne two three four five #从左边开始匹配最长的数组元素,并删除 root@ubuntu:~# echo ${array[@]##o*} two three four five #从右边开始匹配最短的数组元素,并删除 root@ubuntu:~# echo ${array[@]%f*} one two three #从右边开始匹配最长的数组元素,并删除 root@ubuntu:~# echo ${array[@]%%f*} one two three
替换字符串前端子串
root@ubuntu:~# echo ${array[@]/#o/k} kne two three four
替换字符串后端子串
root@ubuntu:~# echo ${array[@] /%o/k} one twk three four
没有指定替换子串,则删除匹配到的子符
root@ubuntu:~# echo ${array[@] //o/} ne tw three fur
转载于:https://blog.51cto.com/caimengzhi/1895124