Ответ 1
~ $ (setenv "XYZ" "abc")
abc
~ $ ./e.sh
abc
~ $ cat e.sh
echo $XYZ
~ $ (setenv "XYZ" "abc")
abc
~ $ ./e.sh
abc
Кажется, я ничего не могу найти. Много раз я запускаю команды с переменной среды, например:
export BLA=foo && ./somebinary
Как это сделать в eshell
? Я думаю, что команда называется set
, но я не уверен, как ее использовать, что было бы эквивалентно в eshell
?
~ $ (setenv "XYZ" "abc")
abc
~ $ ./e.sh
abc
~ $ cat e.sh
echo $XYZ
~ $ (setenv "XYZ" "abc")
abc
~ $ ./e.sh
abc
Я устанавливаю переменные в моем профиле 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))