【问题标题】:Is there a concise way to define two or more bash aliases for the same expansion?是否有一种简洁的方法可以为同一个扩展定义两个或多个 bash 别名?
【发布时间】:2023-03-21 11:15:01
【问题描述】:

假设我想同时使用ec 作为在首选编辑器中打开当前文件夹的快捷方式。

我是否需要像这样定义我的 bash 别名:

alias c="code ."
alias e="code ."

或者有更简洁的语法吗?像这样的东西(我试过了,但没用):

alias c,e="code ."

通过在此处搜索指南、网络和bash alias 问题,我也没有找到简洁的替代方案。不过,很难证明是否定的。 :-)


注意:我专门使用 git-bash。我预计任何答案都会更普遍地适用于 bash。

【问题讨论】:

  • bash 没有提供这样的快捷方式,除了代码高尔夫之外,它真的没有用处。
  • 可能感兴趣的是,函数几乎总是优于别名,zsh 允许您在一个命令中定义具有多个名称的函数:c d () { code . "$@" }
  • @chepner 感谢您确认快捷方式不存在。这确实是我在这里的主要目的。一个可能有用的场景:团队使用在存储库中维护的一组共享别名。一些打字员强烈喜欢c,另一些打字员更喜欢e。现实生活中的扩展本身比我的问题中的插图更长,更复杂,并且在共享文件中的多个位置维护它是不雅的并且容易出错。关于函数,这是一个很好的观点。
  • 我发现别名(以及一般的 shell 自定义)是如此的私人化,几乎不值得尝试分享它们。
  • 是的,关于建议的用途:定义提供必要功能的 a 共享函数,并让各个用户将其别名(如果有的话)为任何他们想要的。跨度>

标签: bash command-line alias git-bash


【解决方案1】:
alias {c,e}="code ."

...将在大括号展开后变为:

alias c="code ." e="code ."

...你想要的。


也就是说,我不相信这个问题是这里的主题;别名是脚本中默认不可用的交互式工具,而 Stack Overflow 仅适用于软件开发。编写脚本绝对重要;使用你的命令行shell,不是那么多。

【讨论】:

  • @Charles Duffy。首先,非常感谢。 :) 其次,关于话题性别名是在 .bash_profile (或等价物)中定义的,根据标签描述,它是一个 shell script,在 bash 用户时执行登录。
  • @TrevorReid,我称之为配置文件,即使它的内容是代码。不从事或不从事软件开发工作的人一直在修改.bash_profile 的内容,而stackoverflow.com/help/on-topic 指定活动必须是“软件开发独有的”才能成为主题。但是,到目前为止,我的投票是目前唯一的接近投票,因此显然该立场并未得到广泛认同。
【解决方案2】:

虽然我更喜欢接受的答案,但可行的替代方法是将第二个(第三个..n)别名扩展为第一个,而不是重复扩展。

alias c="code ."
alias e=c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多