我想在节点js child_process.exec()
中使用params运行bash脚本
文档中是String The command to run, with space-separated arguments
,但
child.exec("cat path_to_file1 path_to_file2")
不起作用。内部改为
/bin/sh -c cat path_to_file1 path_to_file2
其失败。如何正确运行此程序?在shell中,我会这样修复
/bin/sh -c 'cat path_to_file1 path_to_file2'
(我没有写回调,因为我只询问命令参数)
使用exec:的shell选项
child.exec("cat path_to_file1 path_to_file2", {
shell : '/bin/bash'
})
请参阅选项:https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
你试过这样的东西吗?
var exec = require('child_process').exec;
var child;
child = exec("cat '/route/to/file_a' '/route/to/file_b'", function (error, stdout, stderr) {
console.log(stdout);
console.log(stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
这样,您就可以发现错误或获得正确的输出。)