2013-02-05 16 views
12

Non riesco a trovarlo da nessuna parte. Un sacco di volte ho eseguito i comandi con una variabile di ambiente impostata come:Come impostare una variabile d'ambiente nella shell di emacs (eshell)?

export BLA=foo && ./somebinary 

Come faccio a fare questo in eshell? Penso che il comando si chiami set ma non sono sicuro di come utilizzarlo, quale sarebbe l'equivalente sopra in eshell?

+0

Siete alla ricerca di 'setenv' –

+0

Che dire eshell" cd "-ed in una directory remota via tramp? –

+0

Per rispondere alla mia domanda - dipende dai metodi di trasporto usati nel vagabondo - Ho usato "scpx" che usa una shell semplice e quindi non preserva le variabili di ambiente che ho impostato. Il cambio di nuovo in "scp" (o "ssh") ha funzionato! ;) –

risposta

15
~ $ (setenv "XYZ" "abc") 
abc 
~ $ ./e.sh 
abc 
~ $ cat e.sh 
echo $XYZ 
~ $ (setenv "XYZ" "abc") 
abc 
~ $ ./e.sh 
abc 
2

ho impostato le variabili nel mio profilo bash in questo modo:

export WORK_DIR=/Users/me/Documents/some/dir 

Poi nel .emacs ho messo questo:

(let ((work_dir (shell-command-to-string ". ~/.bash_profile; echo -n $WORK_DIR"))) 
(setenv "WORK_DIR" work_dir)) 
Problemi correlati