【发布时间】:2019-04-18 00:39:32
【问题描述】:
我正在尝试使用 scala 的 sys.process 库来传递命令,但我注意到 #| 将返回最终进程的退出代码。我在管道中的较早命令失败,但最终命令的退出代码为 0,因为它没有出错。
我想知道 scala 是否有办法检查/检索管道中先前的命令 (#|) 是否失败。
import scala.sys.process._
val p1 = ("false" #| "true").run()
assert(p1.exitValue == 1)
Bash 有 set -o pipefail 将传递管道的非零退出代码,但它看起来有点“hacky”:
val p2 = Seq("/bin/bash", "-c", "set -o pipefail && false | true").run()
assert(p2.exitValue == 1)
我希望有更好的方法。
谢谢,感谢您的帮助:)
【问题讨论】:
标签: scala process pipe exit-code