2013-04-23 154 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