在shell中截取心仪的字符串

  • A+
所属分类:linux技术
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个值长度