从 Emacs 中将值附加到环境变量

Jos*_*osh 4 emacs environment-variables

我正在使用 Elisp。我想在我的 init 文件中执行以下操作:

; Retrieve the value of LD_LIBRARY_PATH
; Append '/path/to/some/lib/:'to it
; Save the new value of LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

到目前为止,我知道我可以使用:

(getenv "LD_LIBRARY_PATH")
Run Code Online (Sandbox Code Playgroud)

检索值,以及:

(setenv "LD_LIBRARY_PATH" "foo")
Run Code Online (Sandbox Code Playgroud)

设置一个新值,但我对 Elisp 的了解非常初级,所以我不知道从这一点开始。

背景:

这个问题的灵感来自于不可能从 Emacs 中获取 shell 脚本来操作这个环境的事实,所以我需要使用 Elisp 来做到这一点。

cjm*_*cjm 5

在 Elisp 中,字符串连接是通过以下方式完成的concat

(setenv "LD_LIBRARY_PATH"
  (let ((current (getenv "LD_LIBRARY_PATH"))
        (new "/path/to/some/lib"))
    (if current (concat new ":" current) new)))
Run Code Online (Sandbox Code Playgroud)