是否有一种简洁的方法可以为同一个扩展定义两个或多个 bash 别名?

Posted

技术标签:

【中文标题】是否有一种简洁的方法可以为同一个扩展定义两个或多个 bash 别名?【英文标题】:Is there a concise way to define two or more bash aliases for the same expansion? 【发布时间】:2020-02-28 02:55:04 【问题描述】:

假设我想同时使用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 共享函数,并让各个用户将其别名(如果有的话)为任何他们想要的。跨度> 【参考方案1】:
alias c,e="code ."

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

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

...你想要的。


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

【讨论】:

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

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

alias c="code ."
alias e=c

【讨论】:

以上是关于是否有一种简洁的方法可以为同一个扩展定义两个或多个 bash 别名?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一种更简洁的方法可以在 c++(11) 中复制具有多类型值的 unordered_map

是否有一种更简洁的 Dapper 方法来仅更新随 Dapper 更改的列?

在 Swift 中是不是有一种简洁的方法可以将完成块附加到 NSURLSessionDataDelegate 回调?

聚合具有两个或多个具有相同值的列的行

python 3中是不是有一种方法可以使两个用户定义的函数只需要输入一次

是否有一种标准化的方法可以在 Python 中交换两个变量?