执行外部命令

时间:2013-04-23 06:30:26

标签: scala playframework exec

我不知道它是Scala还是Play!题。我想从我的Play应用程序执行一些外部命令,从命令获取输出并根据命令输出向用户显示报告。有人可以帮忙吗?

例如,当我从shell输入 my-command 时,它会显示如下所示的输出,我想捕获并显示在web中:

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

请不要担心输出的格式和解析。在功能上,我看起来像PHP exec 。我知道java Runtime.getRuntime()。exec(“command”)但是有没有Scala / Play版本可以达到目的吗?

3 个答案:

答案 0 :(得分:40)

您必须先导入scala的进程包。方法 !! 可以满足你的需要,执行语句并捕获文本输出。

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

答案 1 :(得分:7)

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

这假设您的主目录中有一个临时文件。 !用于实际执行命令。有关详细信息,请参阅scala.sys.process。

答案 2 :(得分:-1)

您可以使用 Process 库:例如

import scala.sys.process.Process
Process("ls").!!

以字符串形式获取文件夹中的文件列表。 !! 获取命令的输出