【问题标题】:Use semicolon character ";" in bash alias使用分号字符“;”在 bash 别名中
【发布时间】:2020-03-12 15:10:10
【问题描述】:

有了一个烦人的新键盘,我总是输入;s 而不是ls

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

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

【问题讨论】:

  • Unix & Linux 更适合解决有关配置 shell 以进行交互使用的问题; Stack Overflow 的范围仅限于您在编写软件时遇到的特定问题。
  • 谢谢@CharlesDuffy,我应该删除这篇文章并在那里问吗?
  • 让我们看看他们的知识库中是否已经有任何东西——希望他们已经有一个适合的问答条目。 IIRC,readline——bash 用于终端交互的库——可以配置为进行简单的字符串替换。
  • 我倾向于将其视为一个编程问题(尽管它围绕使用 shell 命令展开),因为直接原因涉及 shell 语言的语法。

标签: bash unix terminal


【解决方案1】:

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

$ alias \;s=ls
bash: alias: `;s': invalid alias name

可以定义一个 Readline 宏,在 shell 尝试解析之前将 ;s 替换为 ls

$ bind '";s": "ls"'

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

【讨论】:

  • 我想知道一种奇怪的 bash 黑魔法,比如命名一个这样的函数...... idk
  • 一般来说,“黑魔法”是未记录的功能,处理未记录功能的更好方法是将其视为不存在。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2012-05-25
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多