如何在Node.js中生成腳本並將其傳遞到shell?來自node.js的調用shell腳本
E.g.我可以創建這個文件,例如hello.R
,使其可執行chmod +x hello.R
並在命令行中運行它,./hello.R
:
#!/usr/bin/Rscript
hello <- function(name) { return (sprintf("Hello, %s", name); })
cat(hello("World"));
我想什麼做的是做從節點的等價物。特別是在內存中生成更復雜的R腳本(例如,作爲使用模板的字符串等),執行它(使用exec
或spawn
?),並閱讀stdout
。
但我不能完全弄清楚腳本R.怎麼管我嘗試這樣做(除其他事項外):
var rscript = [
hello <- function(name) { return (sprintf("Hello, %s", name); })
cat(hello("World"));
].join('\n');
var exec = require('child_process').exec;
exec(rscript, { shell: '/usr/bin/R'}, function(err, stdout, stderr) {
if (err) throw(err);
console.log(stdout);
});
然而,這因爲它似乎既不/usr/bin/R
也不/usr/bin/Rscript
瞭解-c
失敗開關:
只是爲了信息,您可以使用[在rstats庫(https://github.com/Planeshifter/node-Rstats),或者。 –