2013-02-05 96 views
12

我似乎無法在任何地方找到這個。很多我運行環境變量的命令次設置,如:如何在emacs shell(eshell)中設置環境變量?

export BLA=foo && ./somebinary 

我如何做到這一點的eshell?我認爲該命令被稱爲set,但我不知道如何使用它,eshell中的以上等效項是什麼?

+0

您正在尋找'setenv' –

+0

什麼ESHELL「光盤「通過流氓到遠程目錄? –

+0

回答我自己的問題 - 它取決於在tramp中使用的傳輸方法 - 我一直使用「scpx」,它使用簡單的shell,因此不保留我設置的環境變量。將它改回「scp」(或「ssh」)工作! ;) –

回答

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

我設置在我的bash輪廓變量,像這樣:

export WORK_DIR=/Users/me/Documents/some/dir 
中的.emacs我把這個

然後:

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