问题
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
回答1:
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'.
回答2:
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
来源:https://stackoverflow.com/questions/6483875/temporary-modified-environment-during-external-process-call-from-emacs