17

我不知道它是 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 版本可以达到此目的?

4

3 回答 3

44

Scala 流程包!!的方法可以满足您的需求,它执行语句并捕获文本输出。例如:

import scala.sys.process._
val cmd = "uname -a" // Your command
val output = cmd.!! // Captures the output
于 2013-04-24T15:16:26.013 回答
6
scala> import scala.sys.process._
scala> Process("cat temp.txt")!

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

于 2013-04-23T06:50:43.110 回答
-1

您可以使用该Process库:例如

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

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

于 2021-03-26T12:29:46.623 回答