我想要一个新的过程来继承现有的环境变量,并设置自己的环境变量。
我只看到两个选项来设置http://hackage.haskell.org/package/typed-process-0.2.6.0/docs/System-Process-Typed.html中的环境变量:
setEnv :: [(String, String)] -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderrSource
setEnvInherit :: ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
我可以使用System.Environment.getEnvironment
手动获取所有环境变量的列表,但是它的文档(http://hackage.haskell.org/package/base-4.12.0.0/docs/System-Environment.html#v:getEnvironment)提到:
getEnvironment检索整个环境作为列表(键,值)对。
如果环境条目不包含'='字符,则密钥为整个条目,值是空字符串。
似乎有些浮躁。
从源头看,似乎有一个数据构造函数的环境变量设置在pcEnv :: !(Maybe [(String, String)])
中-但这似乎没有导出。是否有一些方法可以修改此值?
一种解决方法可以使用unix
包: