2017-03-07 9 views
0

Freunde setzen,Scala: Kann nicht die Umgebungsvariable

Ich versuche, die Umgebungsvariable "asdf" in meiner Scala Schale zu setzen, wie here beschrieben

Das sind meine Befehle:

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 
Aber

wenn ich versuche, die Umgebungsvariable zurück zu lesen:

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

Die Ausgabe sagt "Keine". Wie stelle ich meine Umgebungsvariable in der aktuellen Sitzung richtig ein?

PS - Bitte nicht ablehnen; Ich versuche wirklich hart, aber nicht über mein Problem zu kommen

Antwort

0

Es ist nicht erlaubt, dass ein Scala/Java-Prozess seine eigene Umgebung ändert. Sie können das Objekt scala.util.Properties verwenden, um Umgebungsvariablen und Eigenschaften zu überprüfen. (Docs sind here.) Die Eigenschaften können hinzugefügt/entfernt/geändert werden, die Umgebungsdaten jedoch nicht.

1

Es hat nichts mit Scala zu tun, Sie verstehen nur die Situation. Die Karte am Ende der Leitung

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

die Umwelt nicht diesen Prozess des ändern, die, die Sie in die Eingabe; Es ändert die Umgebung des untergeordneten Prozesses, die die Process()-Funktion erstellt.

+0

Gibt es eine Möglichkeit, meine Umgebungsvariable für den ** aktuellen ** Prozess zu setzen? –

+0

@ JimitRaithatha - nein – Malvolio

Verwandte Themen