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