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

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

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

2 ответа

Решение

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

server-with-environment - это макрос Lisp в `server.el '.

(ENV VARS для сервера со средой и тело отдыха)

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

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

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

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

->

BAR
Другие вопросы по тегам