2013-02-05 17 views
12

Bunu hiçbir yerde bulamıyorum.Emacs kabuğunda (eshell) bir ortam değişkeni nasıl ayarlanır?

export BLA=foo && ./somebinary 

Nasıl eshell bunu nasıl yapabiliriz: Ben bir ortam değişkeni ile komutları çalıştırın Bir çok kez benzeri set? Komutun set olduğunu düşünüyorum ama nasıl kullanacağımı bilmiyorum, eshell'da yukarıdaki eşdeğeri ne olurdu?

+0

Sen arıyorsun ' –

+0

Ne eshell hakkında setenv'" cd-tramp ile uzak bir dizine eklenmiş? –

+0

Kendi sorumu cevaplamak için - bu, tramp'de kullanılan taşıma yöntemlerine bağlıdır - Basit bir kabuk kullanan ve böylece kurduğum ortam değişkenlerini korumayan "scpx" yi kullanıyorum. Geri "scp" (veya "ssh") için geri çalıştı! ;) –

cevap

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

ben şöyle benim bash profilinde değişkenleri ayarlayın:

Bunu koymak .emacs içinde Sonra
export WORK_DIR=/Users/me/Documents/some/dir 

:

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