Ich muss eine Umgebungsvariable aus einem Mathematica-Notizbuch setzen.Einstellen von Umgebungsvariablen in Mathematica
Environment["VARIABLE"]
gibt den Wert der Variablen an. Aber ist es auch möglich, eine Variable zu setzen?
Ich muss eine Umgebungsvariable aus einem Mathematica-Notizbuch setzen.Einstellen von Umgebungsvariablen in Mathematica
Environment["VARIABLE"]
gibt den Wert der Variablen an. Aber ist es auch möglich, eine Variable zu setzen?
Ich gehe davon aus, dass Sie dies tun werden, bevor Sie versuchen, einen externen Befehl auszuführen, richtig? Warum nicht stattdessen einfach "VARNAME = value; your_original_external_command" ausführen, das die evn-Variable vorübergehend setzt.
Es gibt keinen in Funktion (meines Wissens) gebaut, aber man kann nur
Run["set VAR=VALUE"]
oder
!set VAR=VALUE
stattdessen verwenden.
Bearbeiten: Sie möchten die Dokumentation für die Run und RunThrough Befehle sehen.
Umgebungsvariablen mit Run oder RunThrough wird keinen Einfluss auf die Mathematica Kernel selbst, sondern wird nur sichtbar auf Prozesse gestartet innerhalb derselben Run
oder RunThrough
Befehl einrichten.
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 ]]
]
Die MathematicaPut:
Wenn die Umgebungsvariablen auf den Mathematica Kernel Prozess sichtbar sein sollen, der gdb basierten Hack in der akzeptierten Antwort auf Is there a way to change another process's environment variables? beschrieben kann unter Mac OS X verwendet werden Befehl wird verwendet, um gdb zu starten und sich an den Kernel-Prozess Mathematica anhängen zu lassen. Der gdb-Befehl call (int) putenv ("var=value")
wird dann an gdb on stdin gesendet, um die Umgebungsvariable mit putenv einzurichten.
Vorbehalt: Unter Mac OS X ist gdb nur verfügbar, wenn die Xcode developer tools installiert sind.
"Set" scheint nicht zu funktionieren, aber "Export" tut (Ich verwende Bash unter Mac OS X). : ~ cls $ export VAR = WERT : ~ cls $ echo $ VAR VALUE Allerdings funktioniert es nicht von Mathematica. In [15]: = Run [ "export VAR = WERT"] Out [15] = 0 In [16]: = Environment [ "VAR"] Out [16] = $ fehlgeschlagen Auch wenn ich die Variable über die Befehlszeile einstelle, kann sie nicht mit Environment [] abgerufen werden. –