如何在node exec函数中将参数传递给bash命令?

时间:2015-12-17 14:51:12

标签: node.js child-process electron

我想在节点j child_process.exec()

中使用params运行bash脚本

在doc 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'

(我没有写回调,因为我只询问命令参数)

2 个答案:

答案 0 :(得分:0)

使用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

答案 1 :(得分:0)

你有没有试过这样的东西?

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);
    }
});

这样你可以找到错误或获得正确的输出。 ;)