0

次の構文を使用した一連のシステム コールがあります。

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

commandシェルコマンドはどこにありますか。commands.elファイルにこれらのシステム コールがあり、 emacs --script commands.el. 現在、コマンドは実行されていますが、すべての出力がキャプチャされ、印刷されていないように見えます。

4

2 に答える 2

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 に答える
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 に答える