数组
声明
array[key]=value #array[0]=one,array[1]=two
declare -a array #array被看成数组名
array=( value1 value2 value3 ... )
array=( [1]=one [2]=two [3]=three )
array="one two three" # echo ${array[0|@|*]} 把array变量看成数组来处理,但数组元素只有字符串元素自己
访问
${array[key]} #${array[1]}
${array[@|*]} #输出全部元素
${array[@]:1} #从第二(1+1)个元素开始,后面全部的元素
${array[@]:0:2} #从第一(0+1)个元素开始的两个元素
${array[@]:1:3} #从第二个元素开始的三个元素
${#array} #计算数组第一个元素的长度
${#array[0]} #同上
${#array[*}} #计算数组的个数
${#array[@]} #同上
删除
unset array[1] #删除数组中的第一个元素
unset array #删除整个数组
${array[@]#t*e} #删除字符串左边开始最短的匹配t*e
${array[@]##t*e} #删除字符串左边开始最长的匹配t*e
${array[@]%o} #删除字符串右边开始最短的匹配
${array[@]%%o} #删除字符串右边开始最长的匹配
字串替换
${array[@] /o/m} #数组中全部的o都会被替换为m
${array[@] /o/} #全部匹配到的o都会被删除
${array[@] /#o/m} #数组已o开头的匹配将会被替换
${array[@] /%o/m} #数组已o结尾的匹配将会被替换
sample排序
bak_date_ns=(`cat $tmpfile1|awk -F "." '{print $1}'`) //排序前
bak_date=($(for val in "${bak_date_ns[@]}" //排序后
do
echo "$val"
done|sort)
)
函数