Я использую 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)))