Временная измененная среда во время вызова внешнего процесса из Emacs

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

Заранее спасибо, Пер


person Nordlöw    schedule 26.06.2011    source источник


Ответы (2)


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

server-with-environment — это макрос Лиспа в `server.el'.

(сервер с окружением ENV VARS и остальное тело)

Вычислите BODY с переменными среды VARS, установленными на переменные в ENV. Затем переменные среды восстанавливаются до своих предыдущих значений.

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

person phils    schedule 26.06.2011

process-environment – это список переопределенных переменных среды, которые наследуют подпроцессы.

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

->

BAR
person Jürgen Hötzel    schedule 26.06.2011