从 scala 应用程序执行 shell 脚本
Execute shell script from scala application
我想从 Scala 应用程序执行 sh
文件。
假设我有 createPassword.sh
文件,我需要从 Scala 应用程序调用这个 sh
文件并取回输出。
如何通过scala应用实现?
如果脚本在当前工作目录中(否则指定脚本的完整路径),这应该可以解决问题
import sys.process._
val result = "./createPassword.sh" !!
result
是一个包含标准输出(和标准错误)的字符串
编辑:如果你想使用 Java SE7 中的 ProcessBuillder
,你也可以在 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)
}
鉴于您的目录有脚本,
`val path = "./src/test/tests/Integration/"`
`val output = Process("sh test.sh", new File("path")).!!`
我想从 Scala 应用程序执行 sh
文件。
假设我有 createPassword.sh
文件,我需要从 Scala 应用程序调用这个 sh
文件并取回输出。
如何通过scala应用实现?
如果脚本在当前工作目录中(否则指定脚本的完整路径),这应该可以解决问题
import sys.process._
val result = "./createPassword.sh" !!
result
是一个包含标准输出(和标准错误)的字符串
编辑:如果你想使用 Java SE7 中的 ProcessBuillder
,你也可以在 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)
}
鉴于您的目录有脚本,
`val path = "./src/test/tests/Integration/"`
`val output = Process("sh test.sh", new File("path")).!!`