【问题标题】:Recommended method for reloading `.zshrc`? (`source` VS `exec`?)重新加载`.zshrc`的推荐方法? (`source` VS `exec`?)
【发布时间】:2019-05-23 23:58:53
【问题描述】:

大多数人似乎建议使用source 重新加载.zshrc。为什么?

首先我尝试了source ~/.zshrc。但它导致了 compinit 错误(在重新加载时,不适用于新的 shell 实例 .zshrc 加载)。

我的重载别名现在是:

alias zsh-reload="exec zsh"

代替:

source ~/.zshrc

原因是我之前的reload方法(source)触发了compinit错误;

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

所以我现在正在做exec,因为我相信它可以确保以前的环境不会污染新的环境。

  • 使用exec 方法有什么缺点?
  • 您这样做execsource 是否有明确的原因?
  • source 方法相比,exec 在理论上会导致意想不到的问题吗?

【问题讨论】:

    标签: permissions exec zsh zshrc zsh-alias


    【解决方案1】:

    使用exec,您的shell 中的所有(未导出的)变量都将丢失,这可能不是您想要的。相反,通过使用compinit -i 来修复compinit 问题可能会更好。 compinit 见 zsh 手册页,使用 compinit 段:

    要让 compinit 静默忽略所有不安全的文件和目录,请使用选项 -i

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多