使用带格式的 bash 列出目录中的 git 个分支

List git branches in directory using bash with formatting

我想使用 bash.

在一组目录中列出 git 个分支

现在我只想以不同的方式格式化分支名称,如果它是 "master"。换句话说,如果分支是 'master' 我想用蓝色或任何其他颜色显示它。

没有必要为此cd。只需使用这样的东西

reset=$(tput sgr0)
blue=$(tput setaf 4)
for dir in directory_name_1 directory_name_2 ...; do
    branch=$(GIT_DIR="$dir/.git" git symbolic-ref --short HEAD)

    color=
    if [ master = "$branch" ]; then
        color=$blue
    fi

    printf '%s: %s%s%s\n' "${dir##/*}" "$color" "$branch" "$reset"
done

使用tput获取当前终端的正确控制代码以重置属性(sgr0)并将前景色(setaf)设置为蓝色(默认颜色4) .