/ / bash skript na kontrolu, či aktuálna vetva git = „x“ - git, bash, shell, sh

skript bash skontrolovať, či aktuálna git vetva = "x" - git, bash, shell, sh

Som veľmi zlý v skriptovaní shellu (s bashom), hľadám cestu k tomu skontrolujte, či je aktuálna vetva git „x“, a zrušte skript, ak nie je „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"

ale to nie je celkom v poriadku

odpovede:

22 pre odpoveď č. 1

použitie git rev-parse --abbrev-ref HEAD získať názov aktuálnej pobočky.

Potom už stačí len jednoducho porovnať hodnoty v skripte:

BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "x" ]]; then
echo "Aborting script";
exit 1;
fi

echo "Do stuff";

4 pre odpoveď č. 2

Jednou z možností by bola analýza výstupu súboru git branch príkaz:

BRANCH=$(git branch | sed -nr "s/*s(.*)/1/p")

if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi

Ale variant, ktorý používa interné príkazy git na získanie iba názvu aktívnej vetvy, ako navrhuje @knittl, je menej náchylný na chyby a vhodnejší


3 pre odpoveď № 3

Chcete použiť exit namiesto return.