首页 > 解决方案 > Bash 或 Zsh 中的“别名方法链”

问题描述

这是(或者至少是)Ruby 中的一种常见模式,但我不知道如何在 Zsh 或 Bash 中做到这一点。

假设我有一个名为“whoosiwhatsit”的 shell 函数,并且我想在特定项目中覆盖它,同时仍以不同的名称保持原始可用。

如果我不知道更好,我可能会尝试创建一个别名来指向 whoosiwhatsit,然后创建一个使用别名的新“whoosiwhatsit”函数。当然可以,因为别名将引用新函数。

有什么办法可以完成我所说的吗?

标签: bashaliaszsh

解决方案


在 bash 中,有一个名为的内置变量BASH_ALIASES,它是一个包含当前别名的关联数组。更新时语义有点不一致(RTM!),但如果你限制自己阅读BASH_ALIASES,你应该能够为自己编写一个实现别名链接的 shell 函数。


推荐阅读