Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scala: Unable to set environment variable

Friends,

I'm trying to set the environment variable "asdf" in my Scala shell, as described here

These are my commands:

scala> import scala.sys.process.Process
import scala.sys.process.Process

scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!
Hello, world!
res18: Int = 0

But when i try to read the environment variable back:

scala> sys.env.get("asdf")
res19: Option[String] = None

The output says "None". How do i properly set my environment variable in the current session?

PS - Please do not downvote this; i'm trying really hard but unable to get past my issue

like image 480
Jimit Raithatha Avatar asked Mar 07 '17 02:03

Jimit Raithatha


1 Answers

It has nothing to do with Scala, you are just misunderstanding the situation. The map at the end of the line

scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!

doesn't change the environment of of this process, the one you are typing into; it changes the environment of the child process that the Process() function creates.

like image 60
Michael Lorton Avatar answered Oct 03 '22 07:10

Michael Lorton