Выполнить внешнюю команду
Я не знаю, является ли это Scala или Play! вопрос. Я хочу выполнить некоторую внешнюю команду из приложения Play, получить результат из команды и показать отчет пользователю на основе вывода команды. Может ли кто-нибудь помочь?
Например, когда я ввожу команду my-command из оболочки, она показывает вывод, как показано ниже, который я хочу захватить и показать в Интернете:
Id Name IP
====================
1 A x.y.z.a
2 B p.q.r.s
Пожалуйста, не волнуйтесь о формате и синтаксическом анализе вывода. Функционально, я смотрю что-то вроде PHP exec. Я знаю о java Runtime.getRuntime(). Exec ( "command" ), но есть ли какая-либо версия Scala/Play для этой цели?
Ответы
Ответ 1
Сначала необходимо импортировать пакеты процессов scala. Метод!! делает то, что вам нужно, выполняет оператор и фиксирует вывод текста.
import scala.sys.process._
val cmd = "uname -a" // Your command
val output = cmd.!! // Captures the output
Ответ 2
scala> import scala.sys.process._
scala> Process("cat temp.txt")!
Это предполагает наличие временного файла в вашем домашнем каталоге. !
предназначен для фактического выполнения команды. Подробнее см. scala.sys.process.