在shell中截取心儀的字符串

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個值長度
相關文章
相關標籤/搜索