2016-09-27 68 views
0

我正在使用Scala执行外部命令!方法,但无法捕获退出代码,下面是REPL o/p。从Scala捕捉外部命令的错误代码时出错

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) 
        ^

回答

0

没有exitCodescala.sys.process 定义,但!返回值。从您的REPL结果看,它是res11ProcessBuilder.!的文档如下:

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

1

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

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

println(exitCode) 
+0

谢谢,这个解决方案的工作原理 –