首页 > 解决方案 > 从 node.js 更改终端的环境变量

问题描述

我正在开发一个简单的 node.js CLI,它为 AWS 提供 (MF) 身份验证功能。这需要调用 AWS CLI 并更新当前终端中的环境变量(以允许直接调用 aws cli 或 aws cli 的其他使用者来调用它)。

有没有办法更新环境变量,以便调用终端可以使用它们?两者都process.env['KEY'] = 'VALUE'不起作用require('child_process').exec('export KEY=VALUE', ...),因为它们似乎与当前或子进程而不是执行终端隔离。

仍然允许通过 node.js CLI 进行简单调用的解决方案或替代方案将不胜感激!我已经有一个bash执行此操作的脚本,但希望允许通过节点调用,以便更容易安装并提供与其他功能一致的界面。

操作系统:目前是linux,以后可能还有windows。节点版本:10+

标签: node.jslinuxenvironment-variablesaws-cli

解决方案


如果我正确理解您的问题,您正在尝试将环境变量从子进程传递回父进程。这是不可能的。但是,可能值得尝试将环境变量作为字符串输出并使用它来获取父进程中的环境。


推荐阅读