在
在bash中是否可以以某种方式模拟全局别名?
zsh
中,您可以定义全局别名。例如,alias -g G='| grep'
alias -g W='| wc -l'
然后像这样使用它们:
some_command G some_text W
在bash中是否可以以某种方式模拟全局别名?
.bashrc
文件中:bind '"G": "| grep"'
当您键入| grep
时,它将立即扩展为G | grep
。也就是说,按Shift+g不再产生大写字母G,而是生成字符串| grep
。您需要选择一个更长的序列,以免意外输入,无论是作为单独的单词还是其他单词的一部分。
g='| grep'
eval some_command $G some_text
或者
some_command $G some_text
Ctrl+Alt+E(在其他系统上,它似乎是?ctrl+x+*
并且可以配置)
这将扩展命令到所需的some_command | grep some_text
,因此您可以按Enter键。不应扩展的变量必须用单引号括起来。
虽然没有zsh好用。
~/.bashrc
位于用户的主目录中,因此不是系统范围设置的位置。 - Adaephonreadline
宏来自动展开你正在输入的G
为| grep
,但这显然会阻止你输入任何其他目的的G。当你得到一个足够独特以防止不必要扩展的宏名称时,最好直接输入| grep
。 - chepner