From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Brand Subject: Re: Bug: babel: results switch (output vs. value) has no or wrong effect for sh source block [7.7 (release_7.7.107.g7a82)] Date: Mon, 22 Aug 2011 23:49:55 +0200 Message-ID: References: <87pqk1o39w.fsf@gmail.com> <87pqjybpg7.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:39136) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvcNa-0003zH-KG for emacs-orgmode@gnu.org; Mon, 22 Aug 2011 17:49:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QvcNZ-0003Wz-CW for emacs-orgmode@gnu.org; Mon, 22 Aug 2011 17:49:58 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:37076) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvcNZ-0003Vq-8E for emacs-orgmode@gnu.org; Mon, 22 Aug 2011 17:49:57 -0400 Received: by wwf10 with SMTP id 10so4349421wwf.30 for ; Mon, 22 Aug 2011 14:49:55 -0700 (PDT) In-Reply-To: <87pqjybpg7.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: =?ISO-8859-1?Q?Andr=E1s_Major?= , Sebastien Vauban , Achim Gratz , emacs-orgmode@gnu.org Hi Eric 2011/8/20 Eric Schulte : > [...] I would lean towards thinking > that passing along error messages is more important than returning error > codes, but if the community thinks differently I'm happy to change the > ob-sh behavior. A non-zero exit status and stderr of a process are not necessarily related. Because a process may also use - a non-zero exit status without error situation (e. g. grep, diff) - stderr for output not related with errors - stdout for error messages I would like very much to be able to collect all available feedback from a process at the same run. Even with an optional indication of the origin, for ambiguity like the "hello" below or just for clarification. > Unfortunately it seems that in either case the sh code blocks will need > to be different than other languages either in its handling of errors or > of return values. This is unavoidable due to the overloading of return > values in the shell as error indicators. If the shell is a special case for babel anyway, why not something like the following? #+begin_src sh :exports stdout stderr exit_status -v echo hello echo hello >&2 false #+end_src #+results: : 2: hello : 1: hello : exit status: 1 This would have been - with an option -v for verbosity to prefix stdout with "1: ", stderr with "2: " and the exit status - with the exit status of the last command without the need of an extra "echo $?". My habit as a background info: To learn more from the shell I use - a shell prompt with the exit status of the last command - when I sometimes want to visually divide stdout and stderr (bash): { { echo hello; echo hello >&2; } 3>&1 1>&2 2>&3 | sed 's/^/2: /'; } \ 3>&1 1>&2 2>&3 | sed 's/^/1: /'; 3>&- to output: 2: hello 1: hello Michael