Emacs 내에서 환경 변수에 값 추가

Emacs 내에서 환경 변수에 값 추가

저는 엘리스프를 사용하고 있습니다. 내 초기화 파일에서 다음을 수행하고 싶습니다.

; 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)))

관련 정보