hdh*_*una 2 sh parameter-expansion
我正在尝试实施一个解决方案来增加版本。这是我想出的:
#!/bin/sh -x
VAR=1.0.1 # retrieved from Gitlab API
case $1 in
patch)
TAG=${VAR%.*}.$((${VAR##*.} + 1))
;;
major)
TAG=$((${VAR%%.*} + 1)).0.0
;;
*)
tmp=${VAR%.*}
minor=${tmp#*.}
TAG=${VAR%%.*}.$((minor + 1)).0
;;
esac
echo $TAG
Run Code Online (Sandbox Code Playgroud)
major&patch按预期工作;但是,我面临着增加的问题minor。
碰撞时1.0.1,未成年人应1.1.0;但是,我的代码生成1.2.0. 我究竟做错了什么?
更多信息,该脚本在 GitlabCI 管道内执行。
编辑:使用 @jhnc 的建议答案更新了代码
我只想:
#!/bin/sh
var=1.0.1
IFS=. read -r version minor patch <<EOF
$var
EOF
case "$1" in
patch) tag="$version.$minor.$((patch+1))"; ;;
major) tag="$((version+1)).0.0"; ;;
*) tag="$version.$((minor+1)).0"; ;;
esac
echo $tag
Run Code Online (Sandbox Code Playgroud)
适用于高山灰烬。