首页 > 解决方案 > 中间命令别名/函数

问题描述

由于我使用&& !!了很多,我想知道有没有办法缩短它(现在我需要为它移动很多)。示例用例:

$ alias ¤¤='\&\& \!\!' # This is not a mid-command alias
$ echo a
a
$ echo b ¤¤
b
a

标签: bashfunctionalias

解决方案


bash没有等效于zsh全局别名(可以在命令中随心所欲地扩展)。Readline 宏可能更合适:

$ bind '"¤¤": "&& !!"'
$ echo a
$ echo b ¤¤
b
a

请注意,当您键入 时¤¤,Readline 会立即将这两个字符&& !!替换为 (这里很难演示)。

要确保它在您的 shell 中始终可用,请添加

bind '"¤¤": "&& !!"'

到您的.bashrc文件中,或添加

$if Bash
"¤¤": "&& !!"
$endif

到你的.inputrc文件。(请注意,.inputrc由 以外的程序读取bash,并且此特定宏可能不值得为其他程序定义。)


推荐阅读