7

I want to execute the sh file from Scala application. Let's say I have createPassword.sh file and I need to invoke this sh file from Scala application and get the output back.

How can I achieve through scala application?

Patryk Rudnicki
  • 755
  • 1
  • 8
  • 21
sharath chandra
  • 149
  • 1
  • 2
  • 11

2 Answers2

13

This should do the trick if the script is in the current working directory (otherwise specify the full path of the script)

import sys.process._
val result = "./createPassword.sh" !!

result is then a String containing the standard output (and standard error)

EDIT: If you want to use ProcessBuillder from Java SE7, you can also use this in 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)
  }
Raphael Roth
  • 26,751
  • 15
  • 88
  • 145
0

Given your dir has a script,

`val path = "./src/test/tests/Integration/"`

`val output = Process("sh test.sh", new File("path")).!!`
dedpo
  • 482
  • 11
  • 30