如何为类型化进程中的新进程设置其他环境变量?

问题描述 投票:0回答:1

我想要一个新的过程来继承现有的环境变量,并设置自己的环境变量。

我只看到两个选项来设置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)])中-但这似乎没有导出。是否有一些方法可以修改此值?

haskell process typed-process
1个回答
0
投票

一种解决方法可以使用unix包:

© www.soinside.com 2019 - 2024. All rights reserved.