下面列出常用的几种方法
${#var} # 获取字符串长度length
${var#/} # 以‘/’为分隔符,满足一个条件取右边的所有字符串
${var##/} # 以‘/’为分隔符,满足最后条件取右边的所有字符串
${var%/} # 以‘/’为分隔符,取满足第一个条件左边的所有字符串
${var%%/} # 以‘/’为分隔符,取满足最后条件左边的所有字符串
${var:start:len} # 字符串截取,从0角标开始到结束,取左不取右,
${var:start} # 字符串截取,没有右边界,直接从左边取到最右
${var:0-start:len} # 其中0-start是取右边的第start个字符,取len个字符
${var:0-start} # 从右边的第start个字符开始往右取
示例:vim test.sh
#!/bin/sh
var=http://www.baidu.com/index?reffer=www.jd.com/index
echo "获取字符串长度:${#var}"
echo "以/为分隔符获取后面所有的字符串:${var#*/}"
echo "以/为分隔符号获取最后一个/后面的字符串:${var##*/}"
echo "满足第一个条件取左边:${var%/*}"
echo "满足最后一条件取左边:${var%%/*}"
echo "从0开始取到5,取左不取右:${var:0:6}"
echo "从第12个取到最后面:${var:12}"
echo "从右边取14个,再往右取6个:${var:0-14:6}"
echo "最右取5个:${var:0-5}"
执行脚本 sh test.sh 结果输出:
获取字符串长度:50
以/为分隔符获取后面所有的字符串:/www.baidu.com/index?reffer=www.jd.com/index
以/为分隔符号获取最后一个/后面的字符串:index
满足第一个条件取左边:http://www.baidu.com/index?reffer=www.jd.com
满足最后一条件去左边:http:
从0开始取到5,取左不取右:http:/
从第12个取到最后面:aidu.com/index?reffer=www.jd.com/index
从右边取14个,再往右取6个:w.jd.c
最右取5个:index
注:只是突然在jenkins构建job时,使用了git自动获取分支是带origin远程分支,但是脚本又有origin,打包分支会出现重复,所以不打算修改脚本,而是通过参数穿过来截取/后面的分支;
即:获取origin/fetch_fix,通过截取获得fetch_fix分支以变量${branch}传给脚本执行。