Ubuntu环境下GitHub Action中如何提取BRANCH变量的版本号?
提取环境变量BRANCH中的版本号
你给出的命令BRANCH="${BRANCH//[^0-9]/}"根本不行——它会把所有非数字字符全删掉,最后得到的是412,完全不是你要的v4.1.2。给你几个靠谱的方法:
方法1:字符串截取(最直接)
因为你的BRANCH值是release/v4.1.2,直接截取最后一个/后面的部分就行:
BRANCH="${BRANCH##*/}"
原理:##*/会从字符串开头删掉最长的包含/的前缀,剩下的就是目标版本号。
方法2:用sed匹配提取
如果版本号格式固定是v+数字.数字.数字,可以用sed精准提取:
BRANCH=$(echo "$BRANCH" | sed 's/.*\/\(v[0-9]\+\.[0-9]\+\.[0-9]\+\)/\1/')
原理:sed会匹配最后一个/后的版本号片段,用这个片段替换整个字符串。
方法3:awk分割取最后一段
以/为分隔符,直接取最后一段内容:
BRANCH=$(echo "$BRANCH" | awk -F '/' '{print $NF}')
原理:-F '/'指定分隔符为/,$NF代表最后一个字段。
内容的提问来源于stack exchange,提问作者Johan Grobler
相关产品推荐
相关产品推荐

