bash脚本检查当前git分支是否为;x";
我非常不擅长shell脚本(使用bash),我正在寻找一种 检查当前git分支是否为“x”,如果不是“x”,则中止脚本bash脚本检查当前git分支是否为;x";,git,bash,shell,sh,Git,Bash,Shell,Sh,我非常不擅长shell脚本(使用bash),我正在寻找一种 检查当前git分支是否为“x”,如果不是“x”,则中止脚本 但这并不完全正确您想使用退出而不是返回获取当前分支的名称 然后,只需简单地比较脚本中的值: BRANCH="$(git rev-parse --abbrev-ref HEAD)" if [[ "$BRANCH" != "x" ]]; then echo 'Aborting script'; exit 1; fi
但这并不完全正确您想使用
退出
而不是返回
获取当前分支的名称
然后,只需简单地比较脚本中的值:
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
if [[ "$BRANCH" != "x" ]]; then
echo 'Aborting script';
exit 1;
fi
echo 'Do stuff';
一个选项是解析
git分支的输出
命令:
BRANCH=$(git branch | sed -nr 's/\*\s(.*)/\1/p')
if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi
但是,使用git内部命令只获取@knittl建议的活动分支名称的变体不太容易出错,而且最好是,因为您的代码在语法上是无效的,应该是您的第一个求助方法。旁注:
git rev parse--abbrev ref HEAD
是这种情况下的正确方法,您希望返回一些内容(而不是错误)用于判断当前是否分离了磁头。若要区分分离的磁头大小写,请改用git symbolic ref HEAD
。作为一个线性行:[[$(git rev parse--abbrev ref HEAD)=“master”]&&echo“on master”
BRANCH=$(git branch | sed -nr 's/\*\s(.*)/\1/p')
if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi