file=/dir1/dir2/dir3/my.file.txt ${file#*/} 去掉左邊 ${file##*/} 去掉左邊最後一個 ${file%/*} 去掉右邊 ${file%%/*} 去掉右邊第一個 ${file:5:5} 截取5開始長度5的字符 ${file/dir/path} 將第一個dir替換爲path ${file//dir/path} 將全部dir替換爲path ${file-my.file.txt} 未設置則返回my.file.txt,空和非空不處理 ${file:-my.file.txt} 未設置和空值則返回my.file.txt,非空不處理 ${file+my.file.txt} 空值或非空值則返回my.file.txt,未設置不處理 ${file:+my.file.txt} 非空則返回my.file.txt,空值或未設置不處理 ${file=my.file.txt} 未設置則返回my.file.txt且賦值file,空值或非空不處理 ${file:=my.file.txt} 未設置或空值返回my.file.txt且賦值file,非空不處理 ${file?my.file.txt} 未設置返回my.file.txt到STDERR,空值及非空值時不做處理 ${file:?my.file.txt} 未設置或空值返回my.file.txt到STDERR,非空值時不做處理 注意: ":+"的狀況是不包含空值的.":-", ":="等只要有冒號就是包含空值(null). unset file能夠將file變爲未設置 ${#file} 變量長度 A=(a b c def) ${A[@]} ${A[*]} 可獲得所有數組 ${A[n]} 能夠獲得第n個值, ${#A[@]} ${#A[*]} 獲得數組長度 ${#A[n]} 獲得第n個值長度