Jod*_*odo 2 javascript exec spawn child-process node.js
这将引发 ENOENT 错误:
const cmd = 'bash my/path/to/script.sh';
const process = spawn(cmd);
process.on('exit', (code) => {
console.log("Child exited");
});
Run Code Online (Sandbox Code Playgroud)
虽然这不会并按预期执行脚本:
const cmd = 'bash my/path/to/script.sh';
exec(cmd, function(err, stdout, stderr) {
console.log(stdout);
});
Run Code Online (Sandbox Code Playgroud)
现在,我想获取数据流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");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6045 次 |
| 最近记录: |