使用bash获取当前分支并存储为变量

使用bash获取当前分支并存储为变量,bash,git,Bash,Git,在使用Kubernetes时,我希望运行依赖于活动分支的命令。因此,在给定当前分支的情况下,使用别名可以帮助我使用自动运行命令的其他别名 我试图使用一个函数将当前活动本地分支的名称存储到bash别名中,这样我就可以运行其他脚本,而不用担心指定活动分支,但在这方面我一直遇到错误 function branch () { local result='git branch | grep ^\* | cut -c 3-'; echo "$result" } alias get_bran

在使用Kubernetes时,我希望运行依赖于活动分支的命令。因此,在给定当前分支的情况下,使用别名可以帮助我使用自动运行命令的其他别名

我试图使用一个函数将当前活动本地分支的名称存储到bash别名中,这样我就可以运行其他脚本,而不用担心指定活动分支,但在这方面我一直遇到错误

function branch ()
{
    local result='git branch | grep ^\* | cut -c 3-';
    echo "$result"
}

alias get_branch=$(branch)
但当我尝试运行此功能时,我得到:

    usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
               [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
               [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
               [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
               <command> [<args>

.... (Same output as just entering 'git')
这让我想到

  • 我的
    ~/.bash\u别名在其他地方可能有语法问题

  • 不知怎的,ZSH出了什么问题

  • 函数中某处的语法错误 定义


  • :)

    使用适当的管道命令可能更简单:

    (在此处为当前分支命名,可以是任意的)


    我试着跟着:@Encrypted西瓜不。。。这只与那个问题有切身关系。当然,我使用的是类似的命令,但我想知道如何将其保存在函数的bash别名中。错误似乎与您显示的代码无关。如果输入
    get\u branch
    ,会发生什么?我只是尝试运行您的代码,它工作正常。您是如何运行这段代码的?您得到的错误和代码似乎没有关系。我想我可能在尝试重新编写东西时,bash会话中出现了语法错误。我似乎在某种程度上错误地定义了函数,但仍然不确定我做错了什么。我仍然不明白为什么这个和别名git_branch='git branch | grep^*| cut-c3-'
    以前不起作用。不确定<代码>别名git|u branch='git branch | grep^\*|cut-c3-'为我工作
    git branch | grep'*'
    是一种反模式。使用git rev parse--abbrev ref HEAD获取分支名称我没有否决,但OP在标题中特别要求使用bash。@Encrypted西瓜是的,我想知道这是否是否决的原因。但不确定OP是否真的需要bash别名。我想这可能是他一个不好的假设,并等待澄清。但你很可能是对的。不管怎样,我们的两种解决方案都有效,我想他无论如何都会好的:-)是的,需要是bash的别名,在question@Dave刘:谢谢你的澄清。编辑。@DaveLiu为什么要编写一个函数来生成别名的主体,为什么一开始就“需要”别名?
    alias IMLAZY='git branch |grep \* | cut -d " " -f2'
    alias TEST='git branch | grep ^\* | cut -c 3-'
    
    alias IMLAZY='git branch |grep \* | cut -d " " -f2'
    
    alias gitcb='git rev-parse --abbrev-ref HEAD'