Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute shell script from scala application

Tags:

process

scala

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?

like image 423
sharath chandra Avatar asked Oct 19 '16 11:10

sharath chandra


People also ask

How do I run a Unix command in scala?

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"!!

How do I call a shell script from spark?

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).


1 Answers

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)
  }
like image 84
Raphael Roth Avatar answered Sep 17 '22 14:09

Raphael Roth