Subshel​​l、变量 git 和 bash - 如何将 subshel​​l 参数与 bach -c 一起使用

Subshel​​l、变量 git 和 bash - 如何将 subshel​​l 参数与 bach -c 一起使用

我正在尝试使用以下命令从 gerrit 中提取 revspec:

git ls-remote | grep $(git name-rev --all | grep $(git branch --show-current) | awk '{print $1}') | awk '{print $2}'

返回:

refs/changes/86/2214286/16

到目前为止 - 很好(尽管,我想有一个更好的方法可以做到这一点,如果您知道如何做,也请发表评论)。

一般目的是将此命令作为别名放在 gitconfig 中,但这并没有按计划工作。

[alias]
    c = "git ls-remote | grep (git name-rev --all | grep (git branch --show-current) | awk '{print $1}') | awk '{print $2}'"

输出这个:

 git c                                                                                                                                                                                                        
 expansion of alias 'c' failed; 'git' is not a git command

我以为我可以使用“bash -c”在 zsh shell 中运行它(我们团队的大多数人都使用 ZSH)但是,它不合作。

 bash -c "git ls-remote | grep (git name-rev --all | grep (git branch --show-current) | awk '{print $1}') | awk '{print $2}'"

bash: -c: line 0: syntax error near unexpected token `git'
bash: -c: line 0: `git ls-remote | grep (git name-rev --all | grep (git branch --show-current) | awk '{print }') | awk '{print }''

有任何想法吗?

谢谢,

吉利

相关内容