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?
Once this is imported, you'll be able to run your regular shell commands by enclosing the command in double quotes followed by one or two exclamation marks. For example: scala> "ls -lth"! scala> "ls -lth"!!
Go to the Apache Spark Installation directory from the command line and type bin/spark-shell and press enter, this launches Spark shell and gives you a scala prompt to interact with Spark in scala language. If you have set the Spark in a PATH then just enter spark-shell in command line or terminal (mac users).
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)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With