Variables d'environnement mis en place avec Run ou RunThrough n'affecteront pas le seul noyau Mathematica lui-même, mais seront visibles aux processus lancés dans la même commande Run
ou RunThrough
.
Si la variable d'environnement doit être visible au processus du noyau Mathematica , le hack base gdb décrit dans la réponse acceptée à Is there a way to change another process's environment variables? peut être utilisé sous Mac OS X:
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 command est utilisé pour lancer gdb et le faire se connecter au processus noyau Mathematica. La commande gdb call (int) putenv ("var=value")
est ensuite envoyée à gdb sur stdin pour configurer la variable d'environnement avec putenv.
caveat: Sous Mac OS X gdb est disponible uniquement si l'Xcode developer tools sont installés.
« set » ne semble pas fonctionner, mais « l'exportation » ne (j'utilise bash sur Mac OS X.). : ~ $ export VAR cls = valeur : ~ $ echo $ cls VAR VALEUR Cependant, il ne fonctionne pas de Mathematica. Dans [15]: = Run [ "export VAR = VALUE"] Out [15] = 0 Dans [16]: = Environnement [ "VAR"] Out [16] = $ Échec Même si je définis la variable à partir de la ligne de commande, elle ne peut pas être récupérée avec Environment []. –