当我尝试在 REPL 中的 shell 命令中设置环境变量时,如下所示:
;SOME_ENV="foo" some_command
Run Code Online (Sandbox Code Playgroud)
我收到错误:
zsh:1: command not found: SOME_ENV=foo
Run Code Online (Sandbox Code Playgroud)
如何为各个命令设置环境变量?
一种解决方案是使用withenv()
:
julia> withenv("SOME_ENV"=>"foo") do
run(`some_command`)
end
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用setenv()
,但它完全替换了环境,而不是像那样只是修改它withenv()
。特别是,您丢失了PATH
环境变量,因此需要指定命令的完整路径:
julia> run(setenv(`/path/to/some_command`, "FOO"=>"BAR"))
Run Code Online (Sandbox Code Playgroud)
或者您可以将PATH
变量复制到新环境中:
julia> run(setenv(`some_command`, "FOO"=>"BAR", "PATH"=>ENV["PATH"]))
Run Code Online (Sandbox Code Playgroud)
withenv()
有关更多详细信息,请参阅和 的文档setenv()
。