Zsh 在非交互式壳中展开别名

Zsh 在非交互式壳中展开别名,zsh,csh,tcsh,Zsh,Csh,Tcsh,在bash中,我们可以使用shopt-s expand_alias来扩展脚本中的别名 zsh、csh和tcsh的等效命令是什么?他们真的存在吗 在专注于zsh的过程中,我还没有找到这样的命令。我甚至尝试用脚本中的别名来寻找文件,但没有成功。对于zsh您可以使用setopt别名 #!/usr/bin/zsh alias hoo="echo bar" unsetopt aliases hoo # outputs `./test.zsh:5: command not found: hoo` seto

bash
中,我们可以使用
shopt-s expand_alias
来扩展脚本中的别名

zsh
csh
tcsh
的等效命令是什么?他们真的存在吗


在专注于
zsh
的过程中,我还没有找到这样的命令。我甚至尝试用脚本中的别名来寻找文件,但没有成功。

对于
zsh
您可以使用
setopt别名

#!/usr/bin/zsh

alias hoo="echo bar"
unsetopt aliases
hoo # outputs `./test.zsh:5: command not found: hoo`
setopt aliases
hoo # outputs `bar`
有关详细信息,请参见
man zshoptions


对于
csh
tcsh
,源文件(
source${HOME}/.cshrc
)就足够了。

zsh似乎在默认情况下扩展了alias。您可以编写一些在zsh中不起作用的示例代码吗?如果我在(例如)
~/.zshrc
中设置了我的别名,并且在脚本顶部设置了我的
source${HOME}/.zshrc
,那么该脚本将无法使用
~/.zshrc
中存在的别名。它至少对
zsh
有效。非常感谢。请将其添加为答案,以便我可以接受。了解如何在
csh
tcsh
中执行此操作:在相关文件上使用
source
即可。在
zsh
中默认启用
alias
选项(至少从2019年2月起)