Ответ 1
Лучший способ сделать это - использовать scala.sys.process.
Я хочу выпустить собственную командную команду из программы Scala и, возможно, захватить вывод. ( "ls" приходит на ум. Могут быть другие способы получить информацию каталога без выдачи команды, но это касается моего вопроса.) Это будет соответствовать os.system(...) в Python.
Я просмотрел "Программирование в Scala". Я посмотрел в O'Reilly "Программирование Scala". У меня есть несколько комбинаций терминов. Пока не повезло. Может ли кто-нибудь дать мне пример или указать мне на ресурс, где я могу найти пример?
Лучший способ сделать это - использовать scala.sys.process.
import scala.sys.process._
val vimLocation: String = "whereis vim" !!
Scala не отличается от Java в этой области, так как вы можете вызывать любые функции Java API с помощью функций Scala interop. См. Например, java.lang.ProcessBuilder
.
Вы можете сделать это с помощью sys.process
легко:
Выполнение системных команд и получение их кода состояния (код выхода):
import sys.process._
val result = "your_command" !
println("result = "+result) // result contain zero for success or non zero for fail
Получение вывода из системных команд:
import sys.process._
val result = "your_command" !!
println("result = "+result) // result contain output from the command
У вас есть несколько других опций (конвейер, перенаправление STDOUT, добавление в STDOUT и...), вы можете увидеть эту ссылку.
Scala обладает полной совместимостью с Java. Таким образом, вы можете вызывать системные команды из Scala, как и с Java. См. this, чтобы узнать, как вызывать системные команды из Java.