节点.JS Child_Process捕获密码提示

Node.JS Child_Process Catching Password Prompt

本文关键字:密码 提示 Process JS Child 节点      更新时间:2023-09-26

如何使用node.js child_process以编程方式允许我提供密码。

const spawn = require('child_process').spawn;
const ls = spawn('sudo ls');
ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

上面抛出了一个错误。我试图弄清楚我可以在哪里捕获它想要输入密码的位置并通过环境变量提供。

我希望我能抓住它说Password检查以确保它这么说,然后传递密码。

错误是因为您错误地使用了 spawn 命令。它应该是:

const ls = spawn('sudo', ['ls']);

子进程的参数被指定为第二个参数(在数组中)。

然后你应该看到密码提示,我想能够写信给stdin输入密码(你想根据你所说的从process.env传递密码)。

编辑:在SO上快速搜索似乎表明它可能不像在提示后写到stdin那么简单。