1. 按子串分割截取
${varible#*string} 从左往右,删除最短的一个以string结尾的子串,即截取第一个string子串之后的字符串
${varible##*string} 从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
${varible%string*} 从右往左,删除最短的一个以string开头的子串,即截取最后一个string子串之前的字符串
${varible%%string*} 从右往左,删除最长的一个以string开头的子串,即截取第一个string子串之前的字符串
例如:
export TEST=123abc456abc789
echo ${TEST#*abc} ===>删掉123abc剩下456abc789
echo ${TEST##*abc} ===>删掉123abc456abc剩下"789
echo ${TEST%abc*} ===>删掉abc789剩下123abc456
echo ${TEST%%abc*} ===>删掉abc456abc789剩下123
2. 固定位置截取
${varible:start:len}:截取变量varible从位置start开始长度为len的子串。第一个字符的位置为0。
例如:
export TEST=123abc456abc789
echo ${TEST:0:3} ===>"123"
echo ${TEST:3:3} ===>"abc"