我可以在node.js中运行bash命令,如下所示:
var sys = require('sys') var exec = require('child_process').exec; function puts(error, stdout, stderr) { sys.puts(stdout) } exec("ls -la", function(err, stdout, stderr) { console.log(stdout); });
如何获得该命令的退出代码(ls -la在此示例中)?我试过跑步
ls -la
exec("ls -la", function(err, stdout, stderr) { exec("echo $?", function(err, stdout, stderr) { console.log(stdout); }); });
尽管如此,无论上一个命令的退出代码如何,它总是返回0。我想念什么?
这两个命令在单独的shell中运行。
要获取代码,您应该能够签err.code入回调。
err.code
如果这不起作用,则需要添加一个exit事件处理程序
exit
例如
dir = exec("ls -la", function(err, stdout, stderr) { if (err) { // should have err.code here? } console.log(stdout); }); dir.on('exit', function (code) { // exit code is code });