是否有可能从节点脚本中获取true / false值,该脚本还将某些内容写入std输出中?
// node script
console.log('doing something');
if (doSomething()) {
return true; // I would like to get this in bash
}
return false; // Or this
然后在我的bash中我这样阅读
SUCCESS=$(node script.js)
但是问题是SUCCESS
包含来自console.log
的所有日志记录,但不包含返回值。
在我的环境中,我不能为此使用退出代码,否则整个脚本将失败。
答案 0 :(得分:2)
我可以看到两个主要选项:
SUCCESS=$((node script.js && echo 'ok') || echo 'fail')
即使节点返回了非零的退出代码,该行也总是成功返回。运行之后,根据结果,SUCCESS
将被设置为ok
或fail
-您可以将其替换为所需的逻辑。node script.js | tail -n1
仅收集输出的最后一行,而忽略其余的日志记录如果可以的话,我建议您使用1,但是如果您确实需要避免使用状态码,或者需要更复杂的输出,则可以选择选项2。