[英]Execute shell command with nodejs
我有这个代码片段
function run_cmd(cmd, args, cb ) {
console.log('[run_cmd] cmd = ' + cmd);
var spawn = require('child_process').spawn;
var child = spawn(cmd, args);
var resp = '';
child.stderr.on('data', function(data) { console.log('err = ' + data) });
child.stdout.on('data', function (buffer) { resp += buffer.toString() });
child.stdout.on('close', function(code) {
console.log('[run_cmd] exit code = ' + code + ', resp = ' + resp);
cb (resp);
});
}
当我执行像ls
这样的简单命令时,它工作正常。
run_cmd( "ls", ["-l"], function(text) { console.log (text) });
但是当我尝试执行此命令时,它不会执行
libreoffice --headless --convert-to pdf /home/username/input_file.rtf --outdir ~/tmp
这样
run_cmd( "libreoffice", ["--headless", "--convert-to pdf", file_path, "--outdir ~/tmp"], function(text) { console.log (text) });
我得到退出代码= false
,响应为空。 我将如何调试呢?
该命令未执行(未创建输出文件)。
当我手动粘贴到终端中时,该命令运行正常。
此问题是由路径中的波浪号引起的(请参见此处 )。 您可以尝试手动扩展波浪线并重新运行该功能吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.