2013-04-23 173 views
13

我不知道它是Scala還是Play!題。我想從我的Play應用程序執行一些外部命令,從命令獲取輸出並根據命令輸出向用戶顯示報告。誰能幫忙?執行外部命令

例如,當我從殼進入我的命令它顯示了類似下面的輸出,這是我想捕捉並顯示在網頁:

Id Name IP 
==================== 
1  A  x.y.z.a 
2  B  p.q.r.s 

請不要擔心格式和解析輸出。功能上,我看起來像PHP exec。我知道java Runtime.getRuntime().exec(「command」)但是有沒有任何Scala/Play版本可用於此目的?

回答

35

您必須首先導入scala的進程包。方法!!做你所需要的,它執行語句並捕獲文本輸出。

import scala.sys.process._ 
val cmd = "uname -a" // Your command 
val output = cmd.!! // Captures the output 
+4

[方便的文檔鏈接](http://www.scala-lang.org/api/2.10.4/#scala.sys.process.package) – BeepDog 2014-08-11 19:59:10

7
scala> import scala.sys.process._ 
scala> Process("cat temp.txt")! 

這假設您的主目錄中有一個臨時文件。 !用於命令的實際執行。有關更多信息,請參閱scala.sys.process。

+0

非常感謝,我沒有介紹Process類。 – 2013-04-26 04:44:19