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

Rey*_*rPM 6 bash zsh bash-alias

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

alias myalias="cd /"
Run Code Online (Sandbox Code Playgroud)

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

alias myaliasone="myalias && cd /usr"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过(使用真正的别名,这个别名只是为了示例目的而伪造的),但没有任何反应,而且我无法根据调试或修复某些内容看到任何错误,有什么想法吗?如果这是在另一个别名中使用别名的正确方法,您知道我如何调试它以便找到根本问题或发生了什么吗?

Mar*_*ert 7

有两种方法可以做到这一点:

使用函数而不是别名

myalias() {
  cd /
}
alias myaliasone='myalias && cd /usr'
Run Code Online (Sandbox Code Playgroud)

使用$aliases

zmodload -F zsh/parameter p:aliases
alias myalias='cd /'
alias myaliasone='$aliases[myalias] && cd /usr'
Run Code Online (Sandbox Code Playgroud)

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