Zugriff auf eine Bash-Umgebungsvariable aus R in emacs-ess

In meinem .bashrc habe ich die Zeile:

export SETTINGS=/home/user/settings.xml

Wenn ich R in bash lade, kann ich mit dem auf diese Variable zugreifenSys.getenv Funktion:

Sys.getenv("SETTINGS")
"/home/user/settings.xml"

Wenn ich R in Emacs öffne (M-x R), ist SETTINGS leer:

Sys.getenv("SETTINGS")
""

Was ich ausprobiert habe:

Hinzufügen der folgenden Dateien zu .emacs, basierend aufWie bringe ich Emacs dazu, bash-Umgebungsvariablen für die Kompilierung zu erkennen?

;; get environment vars from .bashrc
(let ((path (shell-command-to-string ". ~/.bashrc; echo -n $SETTINGS")))
  (setenv "SETTINGS" path))

Öffnen von Bash in Emacs mitM-x term

echo $SETTINGS         # works
R
Sys.getenv("SETTINGS") #works

Wenn ich Emacs vom Terminal aus öffne, ist die Variable SETTINGS erwartungsgemäß verfügbar. Öffnen Sie emacs über das Anwendungsmenü (entweder mit dem Befehl/usr/bin/emacs23 %F oderemacs) funktioniert nicht.

Vergleich der Ausgabe vonsession("env") Wenn Sie R in Bash vs Emacs laden, aber nichts anderes auffällt als (Bash = <, Emacs =>):

> INSIDE_EMACS=23.3.1,comint
6d5
< SETTINGS=/home/user/settings.xml
9c8
< SHLVL=1
> SHLVL=0
14a14
> PAGER=cat
16d15
< PAGER=/usr/bin/pager
19d17
< COLORTERM=gnome-terminal
25c23
< WINDOWID=14680069
> DESKTOP_AUTOSTART_ID=1020ce948b944a88113395253627645060000001863000
< TERM=xterm
> TERM=dumb

Kann ich auch

in emacs-ess von r aus auf einstellungen zugreifenEINSTELLUNGEN irgendwo exportieren, auf die ich zugreifen kann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage