數組
聲明
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)
)
函數