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