从Scala捕获外部命令的错误代码时出错

时间:2016-09-27 09:04:15

标签: scala

我正在使用Scala执行外部命令! REP方法,但不能捕获退出代码,

scala> import scala.sys.process._
import scala.sys.process._

scala> "ls -lrt CLSTM111.30.SUB#1.D160927.T030108.d.CLSLM001.cls_catg_lkup_EXT.stdout " .!
-rw-r--r-- 1 clsdusr clsdevl 38 Sep 27 03:01 CLSTM111.30.SUB#1.D160927.T030108.d.CLSLM001.cls_catg_lkup_EXT.stdout
res11: Int = 0

scala> println(exitCode)
<console>:35: error: not found: value exitCode
              println(exitCode)
                      ^

2 个答案:

答案 0 :(得分:1)

退出代码是!的返回值。你可以做到

val exitCode = "ls -lrt CLSTM111.30.SUB#1.D160927.T030108.d.CLSLM001.cls_catg_lkup_EXT.stdout ".!

println(exitCode)

答案 1 :(得分:0)

exitCode中未定义scala.sys.process ,但!的返回值。从您的REPL结果中res11ProcessBuilder.!的文档如下:

  

启动此构建器表示的进程,阻塞直到退出,并返回退出代码。标准输出和错误将发送到控制台。