如何给这个 git 复杂的 git 命令加上单引号和双引号的 git 别名

发布于 2025-01-10 12:01:34 字数 220 浏览 0 评论 0原文

我正在尝试为此命令创建一个 git 别名:

git branch -vv | grep ': gone]'|  grep -v "\*" | awk '{ print $1; }' | xargs -r git branch -d

我尝试了不同的操作:用“”将命令括起来,添加!管道需要...但我无法使该命令在别名内工作。 你有什么想法吗?

谢谢!

Im trying to create a git alias to this command:

git branch -vv | grep ': gone]'|  grep -v "\*" | awk '{ print $1; }' | xargs -r git branch -d

I've tried different things: enclosing the command with "", adding ! is needed for the pipes... but I cannot make the command work inside the alias.
Do you have any idea?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不知所踪 2025-01-17 12:01:34

不要费心让它成为别名。只需将其放入 $PATH 中名为 git-mycommand 的文件中即可(可能是 ~/bin);现在您可以运行 git mycommand ,它将运行该脚本。

话虽如此,这可能会起作用:

git config --global alias.mycommand '!'"git branch -vv | grep ': gone]'|  grep -v '\*' | awk '{ print $1; }' | xargs -r git branch -d"

Don't bother making it an alias. Just drop it into a file named git-mycommand somewhere in your $PATH (maybe ~/bin); now you can run git mycommand and it will run that script.

Having said that, this might work:

git config --global alias.mycommand '!'"git branch -vv | grep ': gone]'|  grep -v '\*' | awk '{ print $1; }' | xargs -r git branch -d"
挽清梦 2025-01-17 12:01:34

一种替代方法是将命令包装在别名内定义的 shell 函数中:

[alias]
name = "!f() { git branch -vv | grep ': gone]'|  grep -v \"\*\" | awk '{ print $1; }' | xargs -r git branch -d; }; f"

! 开头的别名将被解释为 作为 shell 命令。在本例中,您只需定义一个名为 f 的 shell 函数,然后直接调用。

请记住,您必须转义函数内的任何 " 字符。

One alternative is to wrap the commands in a shell function defined inside an alias:

[alias]
name = "!f() { git branch -vv | grep ': gone]'|  grep -v \"\*\" | awk '{ print $1; }' | xargs -r git branch -d; }; f"

An alias that starts with ! will be interpreted as a shell command. In this case, you simply define a shell function named f and then you invoke directly.

Keep in mind that you'll have to escape any " characters inside the function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文