env不工作,但echo显示变量
完全被这种行为弄糊涂了。
env不显示变量,而是echo显示它。
我经常使用 .env 文件导入测试,env | grep VAR但不知何故,它在我获取它后没有立即显示。这让我思考。
这是我用来解决问题的步骤。
$ cat >.env
TARXAN=wat
^D
$ . .env
$ echo $TARXAN
wat
$ env | grep TARXAN
$
我有 oh-my-zsh 的 zsh。没有启用任何 dotenv 插件。将不胜感激任何帮助。我在 kubuntu 20.04。
我还在 xterm 中测试了整个设置。相同的结果。
回答
env因为TARXAN它不是环境变量,所以没有显示出来,即它没有被导出。它只是一个shell变量。
- Don't use `eval`; just use `setopt ALL_EXPORT` (or `set -a`, which would work in `bash` or `zsh`) to enable auto-exporting of names being assigned to. `set -a; . .env; set +a`.