Ho bisogno di impostare una variabile di ambiente da un notebook Mathematica.Impostazione delle variabili di ambiente in Mathematica
Environment["VARIABLE"]
indica il valore della variabile. Ma è possibile anche impostare una variabile?
Ho bisogno di impostare una variabile di ambiente da un notebook Mathematica.Impostazione delle variabili di ambiente in Mathematica
Environment["VARIABLE"]
indica il valore della variabile. Ma è possibile anche impostare una variabile?
Suppongo che lo farai prima di provare a eseguire un comando esterno, giusto? Perché non eseguire semplicemente "VARNAME = value; your_original_external_command" che imposterà temporaneamente la variabile evn.
Non c'è nessun costruito in funzione (a mia conoscenza), ma si può semplicemente utilizzare
Run["set VAR=VALUE"]
o
!set VAR=VALUE
invece.
Modifica: Verrà visualizzata la documentazione per i comandi Run e RunThrough.
variabili dell'ambiente, istituita con Run o RunThrough non influiranno sulla kernel di Mathematica sé, ma saranno visibili solo ai processi avviati all'interno dello stesso comando Run
o RunThrough
.
Se la variabile d'ambiente dovrebbe essere visibile al processo kernel Mathematica, l'hack gdb base descritto nella risposta accettato di Is there a way to change another process's environment variables? può essere utilizzato in ambiente 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 ]]
]
Il MathematicaPut il comando è usato per lanciare gdb e farlo allegare al processo del kernel Mathematica. Il comando gdb call (int) putenv ("var=value")
viene quindi inviato a gdb su stdin per impostare la variabile di ambiente con putenv.
Avvertenza: in Mac OS X gdb è disponibile solo se sono installati Xcode developer tools.
"set" non sembra funzionare, ma "export" funziona (sto usando bash su Mac OS X). : ~ cls $ export VAR = VALORE : ~ cls $ echo $ VAR VALUE Tuttavia, non funziona da Mathematica. In [15]: = Run [ "export VAR = VALORE"] Out [15] = 0 In [16]: = Ambiente [ "VAR"] Out [16] = $ riuscita Anche se imposto la variabile dalla riga di comando, non può essere recuperata con Ambiente []. –