变量为空时,shell脚本退出运行。

shell脚本里 :

echo $tagName
findTagNameInt=`git tag -l|grep "$tagName"`
echo "123"
echo "$findTagNameInt"
if [ -n ${findTagNameInt} ];then
    echo " tag ${tagName} already exists"
else 
    git tag ${tagName}
    git push origin ${tagName}
    echo "new enterprise tag ${tagName}"
fi

实际系统运行中,变量tagName是可输入的,效果如下:
tagName=ver-2.2.0.1时,返回变量findTagNameInt为ver-2.2.0.1。

root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ tagName=ver-2.2.0.1 
root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ findTagNameInt=`git tag -l|grep "${tagName}"`
root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ echo ${findTagNameInt}
ver-2.2.0.1

tagName=ver-2.2.0.2时,返回变量findTagNameInt为空。

root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ tagName=ver-2.2.0.2
root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ findTagNameInt=`git tag -l|grep "${tagName}"`
root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ echo ${findTagNameInt}

root@u216 /home/ubuntu/workroom/jenkins/TDinternal (release/ver-2.2.0.1)$ 

放在脚本里。发现这个变量为空的时候脚本就不朝下运行了。
tagName=ver-2.2.0.1:

ver-2.2.0.1
123
ver-2.2.0.1
tag ver-2.2.0.1 already exists

tagName=ver-2.2.0.2:打印第一个tagName时就停了。。

ver-2.2.0.2

自己找到问题了。跟领导调试了一圈发现脚本开始的时候有set -e。
set -e:这句之后遇到非零返回值,会直接退出

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

自己找到问题了。跟领导调试了一圈发现脚本开始的时候有set -e。
set -e:这句之后遇到非零返回值,会直接退出