【问题标题】:Expand aliases in non-interactive shells在非交互式 shell 中展开别名
【发布时间】:2014-06-09 02:51:54
【问题描述】:

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

zshcshtcsh 的等效命令是什么?它们甚至存在吗?

在我的精力集中在zsh 上,我还没有找到这样的命令。我什至尝试使用脚本中的别名来获取文件,但它不起作用。

【问题讨论】:

  • zsh 似乎默认扩展别名。你能写一些在 zsh 中不起作用的示例代码吗?
  • 如果我在(例如)~/.zshrc 中设置了别名并且我在脚本顶部设置了source ${HOME}/.zshrc,则该脚本将无法使用存在于~/.zshrc 中的别名.
  • 它有效,至少对于zsh。谢谢你。请将其添加为答案,以便我接受。

标签: zsh csh tcsh


【解决方案1】:

对于zsh,您可以使用setopt aliases

#!/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

对于cshtcsh,获取文件(例如source ${HOME}/.cshrc)就足够了。

【讨论】:

  • 想出了如何在cshtcsh 中做到这一点:在相关文件上使用source 就足够了。
  • aliases 选项在 zsh 中默认开启(至少,截至 2019 年 2 月)
猜你喜欢
  • 2012-02-22
  • 2010-12-09
  • 2013-04-16
  • 2011-09-01
  • 1970-01-01
  • 2016-02-17
  • 2017-07-04
  • 2017-11-23
  • 1970-01-01
相关资源
最近更新 更多