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原文:http://caimengzhi.blog.51cto.com/9787265/1895124