推荐重新加载`.zshrc`?的方法(`source VS`exec`?)

时间:2019-05-23 23:58:54

标签: permissions exec zsh zshrc zsh-alias

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

首先,我尝试了source ~/.zshrc。但这会导致compinit错误(在重新加载时,而不是在第一次.zshrc加载时针对新的Shell实例)。

我的重新加载别名为:

alias zsh-reload="exec zsh"

代替:

source ~/.zshrc

原因是我以前的重载方法(source)触发了compinit错误;

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

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

  • 使用exec方法有什么弊端?
  • 您正在做execsource的明确原因吗?
  • exec方法相比,source在理论上会引起意想不到的问题吗?

1 个答案:

答案 0 :(得分:0)

使用exec,shell中的所有(未导出的)变量都将丢失,这可能不是您想要的。相反,使用compinit -i来解决compinit问题可能更好。有关 compinit 的信息,请参见zsh手册页, compinit的使用

  

使用-i

选项使compinit静默忽略所有不安全的文件和目录。