我不知道它是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版本可以达到目的吗?
答案 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").!!
以字符串形式获取文件夹中的文件列表。 !!
获取命令的输出