(save-current-buffer
(let
(
(buffer (set-buffer (generate-new-buffer "*keychain*")))
(eval-sh-export
(lambda (name)
(progn
(goto-char (point-min))
(setenv name
(buffer-substring
(search-forward (concat name "="))
(- (search-forward ";") 1)))))))
(insert-file-contents
(concat
(expand-file-name "~/.keychain/")
(car (split-string (system-name) "\\."))
"-sh"))
(funcall eval-sh-export "SSH_AUTH_SOCK")
(funcall eval-sh-export "SSH_AGENT_PID")
(kill-buffer buffer)))
lambda がどうも上手につかえない。