Hi Matt, Ihor, Alain,

Ihor Radchenko <yanta...@posteo.net> writes:

> alain.coch...@unistra.fr writes:
>> At the most basic user level (i.e., non lisp aware), why is it not
>> necessarily a bug if "something" does the expected in an X terminal
>> but not in an emacs terminal?  I think Matt and I (and others) are on
>> the same page here, and he already essentially drafted the bug report
>> I would have sent (only better).
> WRT M-x shell, feel free to submit a bug report. I mostly pointed that
> the problem with M-x shell is not the problem you originally ran to. It
> is a different problem (also, we ran into it in the past).

FWIW, M-x shell differs from what a plain terminal is doing (xterm, in
my case), but, I do prefer 'M-x shell' behavior: it allows me to copy
multiple lines, getting the same results as when I type them manually,
or copy them line by line. My xterm doesn't seem to allow me to do that.

>> What also confuses me is that it seems to me that, in the minimum
>> working example, you consider the ssh command and the read command as
>> equivalent.  But I don't even enter the password when using ssh...

I've introduced the 'read' example, as a simpler way to modify the
standard input and get the same kind of "unexpected" results, without
relying on SSH.  It seems that I have only caused confusion, sorry about

IIUC, the OP example is not working because SSH is modifying the
standard input (with or without passwords).

> I was only able to reproduce your problem with ssh asking a password.
> We are discussing the reproduced case.
> If you see problems with
>    #+begin_src bash :results output
>    ssh coch...@fruc.u-strasbg.fr "echo foo>foo_file"
>    echo "bar"
>    #+end_src
> even when ssh does not ask for a password, please provide more detailed
> reproducer that we can replicate locally without guessing your ssh config.

I'm not the OP, but, my SSH is configured to work without passwords and
SSH is still consuming lines from standard input:

    #+begin_src bash :results output
    ssh phone echo "remote"
    echo "local"

    : remote

It looks like it is a known SSH "feature" (see

    #+begin_src bash :results output
    seq 1000000 | (ssh phone sleep 1; wc -l)

    : 675173

Same block, but asking SSH to not use stdin (using '-n' as mentionned in
this thread):

    #+begin_src bash :results output
    seq 1000000 | (ssh -n phone sleep 1; wc -l)

    : 1000000

IMHO, what ob-shell is doing today seems a valid way of evaluating
source blocks (and it seems to have been like that for a long time).  It
should probably be documented somewhere, so that users know how to write
their source blocks, or switch to another way, like adding a :cmdline
parameter as mentionned in this thread.

Hoping I didn't increase the confusion again,


> -- 
> Ihor Radchenko // yantar92,
> Org mode contributor,
> Learn more about Org mode at <https://orgmode.org/>.
> Support Org development at <https://liberapay.com/org-mode>,
> or support my work at <https://liberapay.com/yantar92>

Reply via email to