Lispで環境変数を取得する
まずはこれから片付けるよ!
なんかThe Common Lisp Cookbookにそのものずばりがありました。
http://cl-cookbook.sourceforge.net/os.html
*1264146917* (defun my-getenv (name &optional default) #+CMU (let ((x (assoc name ext:*environment-list* :test #'string=))) (if x (cdr x) default)) #-CMU (or #+Allegro (sys:getenv name) #+CLISP (ext:getenv name) #+ECL (si:getenv name) #+SBCL (sb-unix::posix-getenv name) #+LISPWORKS (lispworks:environment-variable name) default)) MY-GETENV *1264146918* (my-getenv "PATH") "/usr/local/bin:/usr/bin:/bin:/usr/games"
できったー。
さあ、この道具があれば、PATHを指定しなくてすみます。
(defun exec-command (command) (with-output-to-string (out) (sb-ext:run-program command nil :search (my-getenv "PATH") :output out))) (exec-command "ls") "_darcs clbuild ... (省略) ... sharp-less2.lisp "
できったー!!