7

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

2 Answers 2

6

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.

Sign up to request clarification or add additional context in comments.

2 Comments

Is there a way to set my environment variable for the current process?
@JimitRaithatha -- nope
6

It is not permitted for a Scala/Java process to modify its own environment. You can use the scala.util.Properties object to inspect environmental variables and properties. (Docs are here.) The properties can be added/removed/changed but the environmentals cannot.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.