首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用org-babel捕获"diff“的输出

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

Stack Overflow用户
提问于 2014-12-04 21:30:13
回答 2查看 1.8K关注 0票数 11

我试图用org-babel来捕获diff的输出,但出于某种原因,它不起作用。为了文件

1

代码语言:javascript
复制
a b c

2

代码语言:javascript
复制
a c b

从命令行调用的diff 1 2返回

代码语言:javascript
复制
1c1
< a b c
---
> a c b

但对于org-babel,什么都没有

代码语言:javascript
复制
#+begin_src sh                                                                                                                                                 
diff 1 2                                                                                                                                                       
#+end_src                                                                                                                                                      

#+RESULTS:

微型缓冲区读到“代码块没有输出”。org-babel错误输出窗口为空。其他命令(如ls )将按预期显示输出。我不熟悉组织-巴贝尔。

我试过使用:results output verbatim,没有改变。我还尝试按照建议的:results output replace使用here。帮不上忙。

  • Emacs版本为24.4.1 (关于Debian jessie)
  • Org-模式版本为8.2.10
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-05 11:49:30

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

奇怪的是,执行babel块将打开Org错误输出缓冲区,就好像有东西要到STDERR。

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

代码语言:javascript
复制
#+begin_src sh :results output
diff 1 2
echo
#+end_src

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

代码语言:javascript
复制
#+begin_src sh :results output
diff 1 2 | cat
#+end_src
票数 14
EN

Stack Overflow用户

发布于 2020-01-28 02:07:15

看起来org-babel不喜欢返回代码不是0时的情况。这就是为什么不同的解决方案是有效的。添加另一个命令意味着块的总体错误代码是成功的。类似地,进入cat的管道使管道返回cat的错误代码。另一种处理错误条件的方法是:

代码语言:javascript
复制
  diff 1 2 || true
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27304469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档