如何将存储在 .env 文件中的环境变量传递给从 shell 脚本运行的节点脚本?

问题描述

我正在尝试从 MAC 中的 shell 脚本运行节点 js 脚本。

#!bin/bash
/usr/local/bin/node /opt/myprojects/instabot/index.js

它工作正常,但问题是当我尝试读取环境变量时,它们显示undefined,我使用 dotenv 包在 node js 脚本中使用 .env 文件传递​​环境变量(我可以读取环境当我直接使用 node index.js)

运行它时正确变量

使用它来配置 dotenv 包 require('dotenv').config()

.env 文件采用 KEY=VALUE 格式

解决方法

如果可能,尝试将该 bash 文件移动到与 index.js 文件相同的目录中,它将起作用。否则,您需要 export 环境变量,您可以通过编辑 .bashrc 文件或临时使用 export foo=bar

之类的命令来永久执行此操作