如何快速修改Shell环境变量?

vin*_*ntf 4 macos process swift

使用时如何访问shell env var之一Process?如果我environment用来设置它们,它将更改所有的环境变量。

let task = Process()
// How do I modify PATH only instead of setting the whole dictionary
task.environment = ["PATH": "/usr/local/bin"]
Run Code Online (Sandbox Code Playgroud)

And*_*ini 6

您可能会在ProcessInfo.processInfo.environment自定义路径(或所需的任何路径)上附加(继承的环境)来解决它:

let task = Process()
var environment =  ProcessInfo.processInfo.environment
environment["PATH"] = "/usr/local/bin"
task.environment = environment
print(task.environment ?? "")
Run Code Online (Sandbox Code Playgroud)

  • 除非我弄错了,否则上面会更新子流程而不是流程。打印将按预期输出。但是`ProcessInfo.processInfo.environment` 保持不变。 (3认同)
  • 如上所示,请务必分配给 task.environment 因为 ProcessInfo.processInfo.environment 是只读的 https://developer.apple.com/documentation/foundation/processinfo/1417911-environment (2认同)