我试图用org-babel来捕获diff的输出,但出于某种原因,它不起作用。为了文件
1
a b c2
a c b从命令行调用的diff 1 2返回
1c1
< a b c
---
> a c b但对于org-babel,什么都没有
#+begin_src sh
diff 1 2
#+end_src
#+RESULTS:微型缓冲区读到“代码块没有输出”。org-babel错误输出窗口为空。其他命令(如ls )将按预期显示输出。我不熟悉组织-巴贝尔。
我试过使用:results output verbatim,没有改变。我还尝试按照建议的:results output replace使用here。帮不上忙。
发布于 2014-12-05 11:49:30
我可以重现你的问题(在OSX上)。
奇怪的是,执行babel块将打开Org错误输出缓冲区,就好像有东西要到STDERR。
如果在diff之后添加任何其他输出,结果将显示OK。例如,
#+begin_src sh :results output
diff 1 2
echo
#+end_src如果强制diff的结果为stdout,结果也将显示:
#+begin_src sh :results output
diff 1 2 | cat
#+end_src发布于 2020-01-28 02:07:15
看起来org-babel不喜欢返回代码不是0时的情况。这就是为什么不同的解决方案是有效的。添加另一个命令意味着块的总体错误代码是成功的。类似地,进入cat的管道使管道返回cat的错误代码。另一种处理错误条件的方法是:
diff 1 2 || truehttps://stackoverflow.com/questions/27304469
复制相似问题