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
It has nothing to do with Scala, you are just misunderstanding the situation. The map at the end of the line
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.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.