使用分号字符“;” 在 bash 别名中

jac*_*ack 1 unix bash terminal

有一个新的烦人的键盘,我总是打字;s而不是ls.

有没有办法为此创建一种别名?

我试过这个:alias ;s="ls"但当然它不起作用!

che*_*ner 5

你不能。您可以;在运行命令时转义,但是alias它本身会通知您名称无效。

$ alias \;s=ls
bash: alias: `;s': invalid alias name
Run Code Online (Sandbox Code Playgroud)

可以定义一个宏的ReadLine更换;sls前壳试图解析它:

$ bind '";s": "ls"'
Run Code Online (Sandbox Code Playgroud)

可以将此命令添加到您的.bashrc文件中。(您可以将它的定义添加到.inputrc,但您不太可能希望在任何其他 Readline 感知程序中使用此宏。)

  • 一般来说,“黑魔法”是未记录的功能,处理未记录的功能的更好方法是就好像它不存在一样。:) (2认同)