次の構文を使用した一連のシステム コールがあります。
(call-process "/bin/sh" nil nil t "-c" command)
command
シェルコマンドはどこにありますか。commands.el
ファイルにこれらのシステム コールがあり、 emacs --script commands.el
. 現在、コマンドは実行されていますが、すべての出力がキャプチャされ、印刷されていないように見えます。
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)))
じゃあこういうこと?
(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.
の最後に出力します。その前に空行を追加するか、それを抑制する方法を見つけてください。