gpt4 book ai didi

javascript - Node.js通过spawn()调用bash脚本: ENOENT

转载 作者:行者123 更新时间:2023-12-03 00:58:21 25 4
gpt4 key购买 nike

这将引发 ENOENT 错误:

const cmd = 'bash my/path/to/script.sh';
const process = spawn(cmd);
process.on('exit', (code) => {
console.log("Child exited");
});

虽然这不会并按预期执行脚本:

const cmd = 'bash my/path/to/script.sh';
exec(cmd, function(err, stdout, stderr) {
console.log(stdout);
});

现在,我希望从 spawn() 获取数据流并使其正常工作。有什么建议可以说明这种行为可能来自哪里吗?

我检查了pwd,两者的当前工作目录是相同的。

最佳答案

看起来问题是 exec 将单个命令参数作为字符串,参数之间用空格分隔,但对于 spawn,您需要提供命令 (bash),然后将参数作为数组提供:

https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback

https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

试试这个:

const process = spawn('bash', ['my/path/to/script.sh']);
process.on('exit', (code) => {
console.log("Child exited");
});

关于javascript - Node.js通过spawn()调用bash脚本: ENOENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com