在Mathematica中设置环境变量

时间:2009-05-12 10:06:23

标签: wolfram-mathematica

我需要从Mathematica笔记本中设置环境变量。

Environment["VARIABLE"]

给出变量的值。但是也可以设置一个变量吗?

3 个答案:

答案 0 :(得分:4)

没有内置功能(据我所知),但你可以使用

Run["set VAR=VALUE"]

!set VAR=VALUE

代替。

修改:您需要查看RunRunThrough命令的文档。

答案 1 :(得分:3)

使用RunRunThrough设置的环境变量不会影响 Mathematica 内核本身,但仅对在同一Run内启动的进程可见或RunThrough命令。

如果 Mathematica 内核进程可以看到环境变量,则可以在Mac OS X下使用已接受的Is there a way to change another process's environment variables?答案中描述的基于gdb的hack:

SetEnvironment[var_String, value_String] := Module[{valueEscaped, cmd},
    valueEscaped = StringTake[ToString[CForm[value]], {2, -2}];
    cmd = "call (int) putenv (\"" <> var <> "=" <> valueEscaped <> "\")";
    Put[OutputForm[cmd], "!gdb -n \"" <> First[$CommandLine] <> "\" " <> ToString[$ProcessID ]]
]

Mathematica Put命令用于启动gdb并将其自身附加到 Mathematica 内核进程。然后将gdb命令call (int) putenv ("var=value")发送到stdin上的gdb,以使用putenv设置环境变量。

警告:在Mac OS X下,gdb仅在安装Xcode developer tools时可用。

答案 2 :(得分:2)

我假设您在尝试运行外部命令之前要执行此操作吗? 为什么不运行“VARNAME = value; your_original_external_command” 这会暂时设置evn变量。

相关问题