我可以在node中运行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)?我试过 run

exec("ls -la", function(err, stdout, stderr) {
  exec("echo $?", function(err, stdout, stderr) {
    console.log(stdout);
  });
});

不管前一个命令的退出代码是什么,它总是以某种方式返回0.我错过了什么?

推荐答案

这两个命令在不同的shell中运行.

要获取代码,您应该能够在回调中判断err.code.

如果这不起作用,则需要添加一个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
});

Node.js相关问答推荐

在我的Next.js应用程序中没有正确设置Process.env.NODE_ENV

MongoDB如果文档S的字段小于另一个字段,则将该字段加一

Express无法发布

使用AWS SDK for JavaScript V3将图像从node.js上传到s3 bucket

Puppeteer 的 BrowserFetcher 发生了什么?

一个大型的单个 Redis 实例可以处理所有事情,还是多个 Redis 实例?

如何在docker容器上正确安装nodejs?

Promise 和 Azure 语音转文本

Node.js中使用ffmpeg如何获取视频截图的位置?

如何在 Docker 容器中 SSO 登录 AWS(使用 aws-sdk v3)

如何在mongodb中获取对象数组内部的数据

为什么当我try req.logout() 时出现此错误?

在 Express.js 中迭代子文档数组

Node JS:自动 Select `http.get`与`https.get`

Node_redis - 如何删除密钥?

如何忽略文件 grunt uglify

Node.js 连接仅适用于本地主机

如何创建安全(TLS/SSL)Websocket 服务器

mongoose 填充与对象嵌套

'node' 未被识别为内部或外部命令