I'm trying to capture the output of diff
with org-babel, but for some reason it's not working. For the files
1
a b c
2
a c b
diff 1 2
called from the command line returns
1c1
< a b c
---
> a c b
But with org-babel, nothing:
#+begin_src sh
diff 1 2
#+end_src
#+RESULTS:
The minibuffer reads "Code block produced no output". The org-babel error output window is empty. Other commands such as ls
show the output as expected. I'm not familiar with org-babel.
I tried using :results output verbatim
, no changes. I also tried using :results output replace
as suggested here . Didn't help.
I could reproduce your problem (on OSX).
The strange thing is that executing the babel block will open the Org-babel Error Output buffer, as if something were going to STDERR.
If you add any other output after diff, results will display OK. For example,
#+begin_src sh :results output
diff 1 2
echo
#+end_src
If you force diff's results to stdout, results will also display:
#+begin_src sh :results output
diff 1 2 | cat
#+end_src
Looks like org-babel
doesn't like it when the return code isn't 0
. That's why the various solutions work. Adding another command uses means that the overall error code of the block is success. Similarly piping into cat
makes the pipeline return the error code of cat
. Yet another way of eating the error condition is:
diff 1 2 || true
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.