3

Is there a convenient and functional (with-...-like) way of temporary modifying environment variables when using shell-comand or start-process?

Thanks in advance, Per

Nordlöw
  • 11,838
  • 10
  • 52
  • 99

2 Answers2

8

process-environment is a List of overridden environment variables for subprocesses to inherit.

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

->

BAR
Jürgen Hötzel
  • 18,997
  • 3
  • 42
  • 58
2

server-with-environment looks promising.

server-with-environment is a Lisp macro in `server.el'.

(server-with-environment ENV VARS &rest BODY)

Evaluate BODY with environment variables VARS set to those in ENV. The environment variables are then restored to their previous values.

VARS should be a list of strings. ENV should be in the same format as `process-environment'.

phils
  • 71,335
  • 11
  • 153
  • 198