【发布时间】:2015-03-30 20:29:50
【问题描述】:
我有一个 .env 文件,其中包含如下变量:
HELLO=world
SOMETHING=nothing
前几天我发现了这个很棒的脚本,它将这些变量放入当前会话中,所以当我运行这样的东西时
$(cat ./.env | grep -v ^# | xargs) && node test
然后我可以访问test.js节点文件中的变量。
console.log(process.env.HELLO)
console.log(process.env.SOMETHING)
问题在于该命令将 .env 变量放在整个会话中,所以当我运行 node test 而不运行 $(cat ./.env | grep -v ^# | xargs) 后,它仍然可以访问这些变量,我正在编写node.js 测试说明了这些变量,我希望能够在有和没有这些 .env 变量的情况下运行相同的命令,而不必担心它们是否仍在会话中。理想情况下我想运行
put-env-variables-for-this-command-first-command node test && node test
并且让环境变量仅在测试脚本第一次运行时可用。
【问题讨论】:
-
bash 允许您执行特定的
FOO=bar ./script变量,这些变量为“脚本”的生命周期设置 $FOO。 -
@MarcB 如何在脚本生命周期内以编程方式
cat.env的内容?假设我在.env中有 20 个变量,我不想每次都手动写入它们:/
标签: linux node.js bash shell unix