2016-09-27 33 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

謝謝,這個解決方案的工作原理 –