从scala应用程序执行shell脚本

sha*_*dra 3 scala process

我想sh从Scala应用程序执行该文件.假设我有createPassword.sh文件,我需要sh从Scala应用程序调用此文件并获取输出.

如何通过scala应用程序实现?

Rap*_*oth 7

如果脚本在当前工作目录中,则应该这样做(否则指定脚本的完整路径)

import sys.process._
val result = "./createPassword.sh" !!
Run Code Online (Sandbox Code Playgroud)

result 然后是一个包含标准输出的String(和标准错误)

编辑:如果你想在ProcessBuillderJava SE7中使用,你也可以在scala中使用它:

  import java.io.{BufferedReader, InputStreamReader}

  val p = new ProcessBuilder("/bin/bash","createPassword.sh")
  val p2 = p.start()
  val br = new BufferedReader(new InputStreamReader(p2.getInputStream()))

  var line:String = ""
  while ({line = br.readLine();  line!= null}) {
    println(line)
  }
Run Code Online (Sandbox Code Playgroud)