【问题标题】:Is it possible to catch an error exit code in node.js from shell script?是否可以从 shell 脚本中捕获 node.js 中的错误退出代码?
【发布时间】:2019-04-24 07:53:58
【问题描述】:

作为问题的标题,这里是场景。

一个shell脚本文件script.sh,它执行一些操作,在某些时候它需要启动一个节点文件。

#! /bin/bash

node "$(dirname "$0")/script.js" "$input"

echo "${?}\n"

在节点文件script.js 中有一些控件,如果出现错误,脚本会返回错误退出代码。

process.exit(1)

是否可以捕获此错误退出代码,以便让命令在 shell 脚本script.sh 中执行?

目前执行被此错误error Command failed with exit code 1. 中断,正如预期的那样。 但是我想知道我是否可以在 shell 脚本上捕获这个错误并继续执行代码的最后一部分echo "${?}\n"

提前致谢

【问题讨论】:

  • 打印的echo "${?}"的值是多少?
  • 正如我所说,执行被中断,所以在调用node "$(dirname "$0")/script.js" "$input" 之后,script.sh 中什么也没有发生。但我希望echo 打印 1。

标签: node.js bash shell sh exit-code


【解决方案1】:

你可以在你的 bash 脚本中做这样的事情,以防你的节点脚本返回 1

node "$(dirname "$0")/script.js" "$input"
   echo "Script: $? - Successfull"
if [ $? != 0 ]; then                   
   echo "${?}\n". 1>&2 && exit 1
fi

【讨论】:

  • 啊,这是因为 set -o errexit 来自另一个实际调用我的 shell 脚本。
猜你喜欢
  • 2013-08-28
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 2011-02-03
  • 2019-10-22
相关资源
最近更新 更多