【发布时间】:2019-11-28 18:31:28
【问题描述】:
我是一个完全的初学者。我正在尝试将此命令添加为 ZSH 别名(我想这就是我正在尝试的)。
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
我试过添加这一行:
alias delete-local-branches="git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d"
在 iTerm 中获取更新文件后,我得到了这个:
~ source ~/.zshrc
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'
_='sudo '
afind='ack -il'
...
rd=rmdir
run-help=man
which-command=whence
显然,不是预期的结果。 关于如何添加它以具有自动完成功能并将其用作别名的任何帮助?
谢谢。
【问题讨论】:
-
不要使用别名;而是定义一个函数。
-
@chepner 有什么区别?我已经尝试更改引号并按预期工作。谢谢@phd
-
定义一个函数不需要任何会与函数体中的引号冲突的引号,它允许您在需要时对命令进行参数化,并且像任何其他命令一样执行,而不是被命令行中的纯文本替换。
-
@sebazelonka:
egrep -v之后的双引号关闭了git之前的开头双引号。 -
有趣的是,我需要在 iTerm 中创建的第一个别名与删除本地合并分支的 git 命令完全相同