如何在 ZSH 中在另一个别名中使用别名?

如何在 ZSH 中在另一个别名中使用别名?

假设我的 ZSH 配置文件中有以下别名定义:

alias myalias="cd /"

我如何myalias在另一个别名中使用?即:

alias myaliasone="myalias && cd /usr"

我试过了(用一个真正的别名,这个是假的,仅用于举例)但什么都没发生,我无法通过调试或修复看到任何错误,有什么想法吗?如果这是在另一个别名中使用别名的正确方法,你知道我该如何调试它,以便找到根本问题或发生了什么吗?

答案1

有两种方法可以实现此目的:

使用函数而不是别名

myalias() {
  cd /
}
alias myaliasone='myalias && cd /usr'

使用$aliases表格

zmodload -F zsh/parameter p:aliases
alias myalias='cd /'
alias myaliasone='$aliases[myalias] && cd /usr'

请注意,字符串需要用'单引号引起来',以防止$其中的参数被立即替换。现在,它们将在评估命令行时被替换,别名被替换。

相关内容