如何从 Nodejs 运行 Linux/Ubuntu 命令(不是可执行文件)

How to run Linux/Ubuntu commands(not executables) from Nodejs

我一直在 运行在 nodejs 中使用 spawn 执行可执行文件,现在当我尝试将 spawn 用于 运行 ubuntu 命令(如取消设置、导出等)时,它们似乎不工作。我猜是因为它正在寻找可执行文件。 我什至试过 exec,这似乎也不起作用。有什么建议吗?

我有一个 ubuntu 设备 运行ning 节点,从 UI 我需要 set/unset 代理环境变量,例如http_proxy 和 no_proxy。除了导出还有什么其他方法可以通过节点进行? env 变量应该在系统范围内设置,而不仅仅是针对当前进程。

环境变量只存在于内存中,并且是进程的本地变量。对于任何 运行 进程,只有进程本身可以更改该进程的环境变量集 "belonging",但这些更改不会传播到现有的子进程或父进程。

简而言之:您不能更改将应用​​于系统上所有进程的环境变量(即使是常规 shell)。

您只能设置一个环境变量,使其可用于新创建的 子进程(默认情况下,子进程从其父进程继承环境变量集),但仅此而已它。

如果您可以控制需要这些特定环境变量的进程的启动方式,您可以将这些变量的值写入文件(来自 Node)并获取文件就在其他进程启动之前,但这是否可用选项实际上取决于实际用例。