Добавление значений к переменным среды из Emacs

Добавление значений к переменным среды из Emacs

Я использую Elisp. Я хотел бы сделать следующее в моем init-файле:

; Retrieve the value of LD_LIBRARY_PATH
; Append '/path/to/some/lib/:'to it
; Save the new value of LD_LIBRARY_PATH

На данный момент я знаю, что могу использовать:

(getenv "LD_LIBRARY_PATH")

для извлечения значения и:

(setenv "LD_LIBRARY_PATH" "foo")

чтобы установить новое значение, но мои знания Elisp крайне поверхностны, поэтому я не знаю, как действовать дальше.

Фон:

Этот вопрос возник из-за того, чтоне возможночтобы получить скрипт оболочки для управления этой средой из Emacs, мне нужно будет сделать это с помощью Elisp.

решение1

В Elisp конкатенация строк выполняется с помощью concat:

(setenv "LD_LIBRARY_PATH"
  (let ((current (getenv "LD_LIBRARY_PATH"))
        (new "/path/to/some/lib"))
    (if current (concat new ":" current) new)))

Связанный контент