我正在尝试从 Julia 运行 shell 命令,该命令需要将环境变量设置为某个特定值。我有两个问题:
如何设置 Julia
run(command, args...; wait::Bool = true)命令使用的环境变量?
如何在$不插入的情况下将特殊符号传递给这个过程?我想测试该变量是否可用于我的程序。
假设我想定义一个环境变量FOO=bar并检查它是否可以在 shell 中使用 shell command 访问echo $FOO。
为了防止 Julia 插值,$我已经像官方文档中解释的那样引用了它,但是 echo 正在打印$PATH而不是它的值。
所以FOO我得到了以下输出
julia> run(`echo '$FOO'`)
$FOO
Process(`echo '$FOO'`, ProcessExited(0))
Run Code Online (Sandbox Code Playgroud)
但会期待类似的东西
julia> run(`echo '$FOO'`)
Process(`echo '$FOO'`, ProcessExited(0))
Run Code Online (Sandbox Code Playgroud)
如果FOO未定义或
julia> run(`echo '$FOO'`)
bar
Process(`echo '$FOO'`, ProcessExited(0))
Run Code Online (Sandbox Code Playgroud)
如果该值设置为bar.
查看有关环境变量的 Julia 文档。您可以使用以下命令设置环境变量:
julia> ENV["FOO"] = "bar"
"bar"
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令检索环境变量的值:
julia> ENV["FOO"]
"bar"
julia> ENV["PATH"]
"really long string of my path"
Run Code Online (Sandbox Code Playgroud)
正如您已经说过的,您可以$通过单引号run命令的该部分来避免解释 the 。我不完全确定你在那里寻找什么。