0

我有一系列使用这种语法的系统调用:

(call-process "/bin/sh" nil nil t "-c" command)

commandshell命令在哪里。我想知道当我在commands.el文件中有这些系统调用并使用emacs --script commands.el. 目前,命令已执行,但所有输出似乎都被捕获而不是打印。

4

2 回答 2

1

那么这样的事情呢?

(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.结束时输出。也许在它之前添加一个空行,或者想办法抑制它。

于 2012-08-13T11:04:17.320 回答
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)))
于 2012-08-13T23:52:38.237 回答