我有一系列使用这种语法的系统调用:
(call-process "/bin/sh" nil nil t "-c" command)
command
shell命令在哪里。我想知道当我在commands.el
文件中有这些系统调用并使用emacs --script commands.el
. 目前,命令已执行,但所有输出似乎都被捕获而不是打印。
那么这样的事情呢?
(set-buffer (get-buffer-create " output"))
(mapc (function (lambda (cmd) (call-process "/bin/sh" nil t t "-c" cmd)))
'("echo hello"
"perl -e \"die qq(goodbye)\"") )
(message "%s" (buffer-string))
这在输出at -e line 1.
结束时输出。也许在它之前添加一个空行,或者想办法抑制它。
让 emacs 为您管理临时缓冲区可能更容易:
(defun run-it (cmd)
"run CMD in shell and return result as string."
(with-temp-buffer
(call-process "/bin/sh" nil t t "-c" cmd)
(buffer-string)))