Подтвердить что ты не робот

Выполнить внешнюю команду

Я не знаю, является ли это 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 для этой цели?

4b9b3361

Ответ 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.