Временная измененная среда во время вызова внешнего процесса из Emacs - PullRequest
3 голосов
/ 26 июня 2011

Существует ли удобный и функциональный (with-... -подобный) способ временного изменения переменных среды при использовании shell-comand или start-process?

Спасибо заранее, Per

Ответы [ 2 ]

8 голосов
/ 26 июня 2011

process-environment - это Список переопределенных переменных среды для наследования подпроцессов.

(let ((process-environment (cons "FOO=BAR" process-environment)))
  (shell-command-to-string "echo $FOO"))

->

BAR
2 голосов
/ 26 июня 2011

server-with-environment выглядит многообещающе.

сервер со средой - это макрос Lisp в `server.el '.

(сервер со средой ENV VARS & rest BODY)

Оценка BODY с переменными среды VARS, установленными в ENV.Переменные среды затем восстанавливаются до своих прежних значений.

VARS должен быть списком строк.ENV должен быть в том же формате, что и `process-environment '.

...