您是否需要在 bash profile / zshrc 中包含环境变量的导出?

Do you need to include export for environment variables in bash profile / zshrc?

您是否需要在 Bash 配置文件/zshrc 中包含 环境变量 的导出?

我在我的终端上使用 Z shell (Zsh),在我的 .zshrc 文件中有两行:

varOne="foo"

export varTwo="bar"

当我在终端内回显任一变量(例如:echo $varOne)时,输出正确的值。

那么在.zshrc文件中用export作为环境变量声明前缀有区别吗?

So is there a difference when prefixing the environment variable declaration with export inside the .zshrc file?

是的,一个是环境变量,另一个不是。

差异对你的 shell 无关紧要(很大),但对 你的 shell。环境变量由子进程继承,常规 shell 变量不是。

~ % foo=3; printenv foo
~ % export foo=3; printenv foo
3

第一种情况,printenv环境中没有名为foo的变量;在第二种情况下,确实如此。