env 不工作,但 echo 显示变量

dar*_*der 1 bash shell zsh environment-variables

完全被这种行为弄糊涂了。

env不显示变量,而是echo显示它。

我经常使用 .env 文件导入测试,env | grep VAR但不知何故,它在我获取它后没有立即显示。这让我思考。

这是我用来解决问题的步骤。

$ cat >.env
TARXAN=wat
^D
$ . .env
$ echo $TARXAN
wat
$ env | grep TARXAN

$
Run Code Online (Sandbox Code Playgroud)

我有 oh-my-zsh 的 zsh。没有启用任何 dotenv 插件。将不胜感激任何帮助。我在 kubuntu 20.04。

我还在 xterm 中测试了整个设置。相同的结果。

shi*_*lch 6

env因为TARXAN它不是环境变量,所以没有显示出来,即它没有被导出。它只是一个shell变量。

  • 不要使用“eval”;只需使用“setopt ALL_EXPORT”(或“set -a”,它可以在“bash”或“zsh”中使用)来启用分配给的名称的自动导出。`设置-a;。.env; 设置+a`。 (2认同)