我在shell脚本编写方面非常糟糕(使用bash),我正在寻找一种方法 检查当前的git分支是否为" x",如果不是" x"则中止脚本。
#!/usr/bin/env bash
CURRENT_BRANCH="$(git branch)"
if [[ "$CURRENT_BRANCH" -ne "master" ]]; then
echo "Aborting script because you are not on the master branch."
return; # I need to abort here!
fi
echo "foo"
但这不太正确
答案 0 :(得分:31)
使用git rev-parse --abbrev-ref HEAD
获取当前分支的名称。
然后,只需简单地比较脚本中的值:
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "x" ]]; then
echo 'Aborting script';
exit 1;
fi
echo 'Do stuff';
答案 1 :(得分:4)
一种选择是解析git branch
命令的输出:
BRANCH=$(git branch | sed -nr 's/\*\s(.*)/\1/p')
if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi
但是使用git内部命令来获取@knittl建议的活动分支名称的变体不容易出错并且更可取
答案 2 :(得分:3)
您想使用exit
代替return
。