Anhängen von Werten an Umgebungsvariablen innerhalb von Emacs

Anhängen von Werten an Umgebungsvariablen innerhalb von Emacs

Ich verwende Elisp. Ich möchte in meiner Init-Datei Folgendes tun:

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

Bisher weiß ich, dass ich Folgendes verwenden kann:

(getenv "LD_LIBRARY_PATH")

um den Wert abzurufen, und:

(setenv "LD_LIBRARY_PATH" "foo")

um einen neuen Wert festzulegen, aber meine Kenntnisse in Elisp sind äußerst rudimentär, sodass ich von diesem Punkt aus nicht weiß, wie ich weitermachen soll.

Hintergrund:

Diese Frage wird durch die Tatsache inspiriert, dass esnicht möglich seinum ein Shell-Skript zu erstellen, mit dem sich diese Umgebung von Emacs aus bearbeiten lässt, also müsste ich hierfür Elisp verwenden.

Antwort1

In Elisp erfolgt die Zeichenkettenverkettung folgendermaßen concat:

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

verwandte Informationen