【问题标题】:How do I call a function in bash if there is an alias by the same name?如果存在同名别名,如何在 bash 中调用函数?
【发布时间】:2014-03-11 09:41:30
【问题描述】:

看看这个例子:

[boda]$ alias aaa='echo aaa'
[boda]$ function aaa () { echo bbb }

[boda]$ function aaa () { echo bbb; }
[boda]$ aaa
aaa

如您所见,我有别名aaa 和函数aaa。但是,当我执行 aaa 时,别名会运行。

如何改为运行该函数?

【问题讨论】:

  • 不要定义别名,或者使用unalias 删除它。 anubhava's answer 是一个很好的解决方法,但真正的问题是你有一个同名的函数和别名,这不可避免地会导致混乱。如果可能,请修复那个问题。

标签: bash function alias


【解决方案1】:

当我执行 aaa 时,别名运行。

你可以这样运行它:

\aaa

这将调用函数。

【讨论】:

  • +1,在哪里可以找到有关``这里使用的文档?
  • 在 Unix shell 中,如果命令存在别名,则可以通过在命令周围加上引号或在命令前加上反斜杠来覆盖别名。 根据: en.wikipedia.org/wiki/Alias_(command) 也有 check thisthis Q&A
  • 感谢分享网址
【解决方案2】:

man page for alias 表明有一个unalias 命令。

unalias aaa

如果你运行它,即使在 aliasfunction 都被定义之后,再次调用 aaa 应该运行这个函数。但是,这确实会破坏别名。如果这是不可取的,那么 anubhava 的答案(或 Keith Thompson 的建议不要用相同的名称定义它们)是最好的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2011-11-06
    • 2011-09-22
    • 2015-01-01
    • 1970-01-01
    相关资源
    最近更新 更多