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

Dom*_*ick 3 bash zsh environment-variables zshrc oh-my-zsh

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

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

varOne="foo"

export varTwo="bar"
Run Code Online (Sandbox Code Playgroud)

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

export那么在文件内部添加环境变量声明前缀有什么区别吗.zshrc

che*_*ner 7

那么,在 .zshrc 文件中为环境变量声明加上 export 前缀有什么区别吗?

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

这种差异对于您的shell来说并不重要,但对于您的 shell 启动的进程来说却很重要。环境变量由子进程继承,而常规 shell 变量则不然。

~ % foo=3; printenv foo
~ % export foo=3; printenv foo
3
Run Code Online (Sandbox Code Playgroud)

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