0
我找不到将附加到环境变量的示例。例如,下面的代码完全取代了PATH
。可能有人帮助我追加,直接或通过展示我如何访问当前PATH
,这样我就可以修改本身并通过全改性价值的Process
追加到Scala环境变量
val out2 = Process("env", None, "PATH" -> "/usr/local/bin")
我找不到将附加到环境变量的示例。例如,下面的代码完全取代了PATH
。可能有人帮助我追加,直接或通过展示我如何访问当前PATH
,这样我就可以修改本身并通过全改性价值的Process
追加到Scala环境变量
val out2 = Process("env", None, "PATH" -> "/usr/local/bin")
有:
scala> util.Properties.envOrNone("PATH")
res0: Option[String] = Some(/home/apm/go1.1/go/bin:/home/apm/go/bin:/home/apm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games)
那就是:
scala> util.Properties.envOrSome("PATH", Some("")) map (p => s"$p${new sys.SystemProperties()("path.separator")}/tmp") get
warning: there was one feature warning; re-run with -feature for details
res5: String = /home/apm/go1.1/go/bin:/home/apm/go/bin:/home/apm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/tmp
我只注意到我的道路已经过时。
编辑的成语:
scala> def appendToEnv(key: String, value: String) = util.Properties.envOrNone(key) match {
| case Some(v) if v.nonEmpty => s"$v${System getProperty "path.separator"}$value"
| case _ => value
| }
appendToEnv: (key: String, value: String)String
scala> appendToEnv("PATH", "/opt")
res0: String = /home/apm/go1.1/go/bin:/home/apm/go/bin:/home/apm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt
scala> appendToEnv("UNPATH", "/opt")
res1: String = /opt
哇噢,正是我需要的。有趣的是你也回答了关于这个话题的其他问题:-P – Hamy 2014-09-24 03:10:54
生活很有趣。我添加了我认为更为习惯的代码。它也处理'Some(“”)'作为边缘情况。 – 2014-09-24 04:54:08