Agregar valores a variables de entorno desde Emacs

Agregar valores a variables de entorno desde Emacs

Estoy usando Elisp. Me gustaría hacer lo siguiente en mi archivo de inicio:

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

Hasta ahora sé que puedo usar:

(getenv "LD_LIBRARY_PATH")

para recuperar el valor, y:

(setenv "LD_LIBRARY_PATH" "foo")

establecer un nuevo valor, pero mi conocimiento de Elisp es extremadamente rudimentario por lo que no sé proceder a partir de este punto.

Fondo:

Esta pregunta está inspirada en el hecho de que esno será posiblepara obtener un script de shell para manipular este entorno desde Emacs, por lo que necesitaría hacer esto usando Elisp.

Respuesta1

En Elisp, la concatenación de cadenas se realiza con concat:

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

información relacionada