用org-babel捕获"diff"的输出

Ale*_*lex 8 emacs sh org-mode org-babel

我试图捕获difforg-babel 的输出,但由于某种原因它不起作用.对于文件

1

a b c
Run Code Online (Sandbox Code Playgroud)

2

a c b
Run Code Online (Sandbox Code Playgroud)

diff 1 2 从命令行调用返回

1c1
< a b c
---
> a c b
Run Code Online (Sandbox Code Playgroud)

但是对于org-babel,没有:

#+begin_src sh                                                                                                                                                 
diff 1 2                                                                                                                                                       
#+end_src                                                                                                                                                      

#+RESULTS:
Run Code Online (Sandbox Code Playgroud)

迷你缓冲区读取"代码块产生无输出".org-babel错误输出窗口为空.其他命令,如ls按预期显示输出.我不熟悉org-babel.

我尝试过使用:results output verbatim,没有变化.我也:results output replace按照这里的建议尝试使用.没有帮助.

  • Emacs版本是24.4.1(在Debian jessie上)
  • 组织模式版本是8.2.10

Jua*_*cho 9

我可以重现你的问题(在OSX上).

奇怪的是执行babel块会打开Org-babel错误输出缓冲区,好像有什么东西要去STDERR.

如果在diff之后添加任何其他输出,结果将显示OK.例如,

#+begin_src sh :results output
diff 1 2
echo
#+end_src
Run Code Online (Sandbox Code Playgroud)

如果将diff的结果强制为stdout,结果也会显示:

#+begin_src sh :results output
diff 1 2 | cat
#+end_src
Run Code Online (Sandbox Code Playgroud)