执行外部命令

Kha*_*lah 16 scala exec playframework

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

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

Id    Name   IP
====================
1     A      x.y.z.a
2     B      p.q.r.s
Run Code Online (Sandbox Code Playgroud)

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

Bjö*_*obs 41

您必须先导入scala的进程包.方法!! 做你需要的,它执行语句并捕获文本输出.

import scala.sys.process._
val cmd = "uname -a" // Your command
val output = cmd.!! // Captures the output
Run Code Online (Sandbox Code Playgroud)

  • [方便的文档链接](http://www.scala-lang.org/api/2.10.4/#scala.sys.process.package) (4认同)

Jam*_*mil 7

scala> import scala.sys.process._
scala> Process("cat temp.txt")!
Run Code Online (Sandbox Code Playgroud)

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