友
我试图设置环境变量" asdf"在我的Scala shell中,如here
所述这些是我的命令:
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
但是当我尝试回读环境变量时:
scala> sys.env.get("asdf")
res19: Option[String] = None
输出显示"无"。如何在当前会话中正确设置环境变量 ?
PS - 请不要低估这一点;我真的很努力,但无法解决我的问题
答案 0 :(得分:2)
它与Scala无关,你只是误解了这种情况。行尾的地图
scala> Process(Seq("bash", "-c", "echo $asdf"), None, "asdf" -> "Hello, world!").!
不会改变此进程的环境,即您输入的进程;它改变了Process()
函数创建的子进程的环境。
答案 1 :(得分:0)
Scala / Java进程不允许修改自己的环境。您可以使用scala.util.Properties
对象检查环境变量和属性。 (文档为here。)可以添加/删除/更改属性,但环境不能。