Linux Bash Shell字符串分割substring等

近期在做持续集成项目,因为要做高使用性的平台,公司项目组各业务线打包流程不尽相同,采用了业务藏入脚本的方式,原有java可实现的操作写入了脚本中

脚本开发中遇到的问题是:原java中的字符串分割操作(substring indexOf等)不知道怎么处理(比如/a/b/c/d.txt我想知道文件的名称)

查询相关资料得知,shell中可以采用标识符来做分割字符串,包括substring(0,index)和substring(index,last)

${var#*substr}会删除从0到substr子字符串最后出现的位置

${var##*substr}会删除substr开始到字符串结束的位置

${var%substr*}会删除字符串最后一次出现到字符串结束的位置的部分

${var%%substr*}会删除字符串第一次出现到结束的部分

a="/a/b/c/d.txt"
b="/"
echo ${a#*$b}
会返回

a/b/c/d.txt


a="/a/b/c/d.txt"
b="/"
echo ${a##*$b}

会返回

d.txt

a="/a/b/c/d.txt"
b="/"
echo ${a%$b*}
会返回

/a/b/c


a="/a/b/c/d.txt"
b="/"
echo ${a%%$b*}

会返回空







你可能感兴趣的:(shell)