How to access a bash environment variable from within R in emacs-ess

bash, emacs, environment-variables, ess, r

Solution

I don't know about R and self-defined environment variables, but I set the PATH variable in emacs to the same value as in my bashrc. I modified my code to your problem, give it a shot and let me know if it works.

;; set env variable in Emacs
(getenv "SETTINGS")
(setenv "SETTINGS" "/home/user/settings.xml")

Original code (for PATH) is:

;; Emacs has its own path variable
(getenv "PATH")
 (setenv "PATH"
(concat
 "/usr/local/texlive/2011/bin/x86_64-linux" ":"
(getenv "PATH")))

Problem

In my .bashrc, I have the line: ``` export SETTINGS=/home/user/settings.xml ``` If I load R in bash, I can access this variable using the `Sys.getenv` function: ``` Sys.getenv("SETTINGS") "/home/user/settings.xml" ``` If I open up R in Emacs (M-x R), SETTINGS is empty: ``` Sys.getenv("SETTINGS") "" ``` What I have tried: adding the following to .emacs, based on How do I make Emacs recognize bash environment variables for compilation? ``` ;; get environment vars from .bashrc (let ((path (shell-command-to-string ". ~/.bashrc; echo -n $SETTINGS"))) (setenv "SETTINGS" path)) ``` opening up bash in emacs using `M-x term` ``` echo $SETTINGS # works R Sys.getenv("SETTINGS") #works ``` If I open emacs from the terminal, the SETTINGS variable is available as expected. Opening emacs from the Applications menu (with either the command `/usr/bin/emacs23 %F` or `emacs`) does not work. comparing output from `session("env")` when loading R in bash vs emacs, but nothing stands out other than (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 ``` Can I either - access SETTINGS from within R in emacs-ess - export SETTINGS somewhere that I can access it?

Original source

Related problems