zsh-users
 help / color / mirror / code / Atom feed
From: "Radoulov, Dimitre" <cichomitiko@gmail.com>
To: Peter Stephenson <p.w.stephenson@ntlworld.com>
Cc: zsh-users@zsh.org
Subject: Re: exec - interactive vs non-interactive shell
Date: Thu, 02 Jun 2011 00:03:23 +0200	[thread overview]
Message-ID: <4DE6B72B.6050806@gmail.com> (raw)
In-Reply-To: <20110601214240.6fde31de@pws-pc.ntlworld.com>

On 01/06/2011 22:42, Peter Stephenson wrote:
> On Wed, 01 Jun 2011 21:55:04 +0200
> "Radoulov, Dimitre"<cichomitiko@gmail.com>  wrote:
>> zsh-4.3.11[t]% cat a_script
>> exec cat
>> ok
>> zsh-4.3.11[t]%
>>
>>
>> zsh-4.3.11[t]% zsh<   a_script
>> ok
> So cat has taken over stdin, as expected.
>


Yes,
ash, dash and bash, for example, behave differently (ksh and variants 
seem to behave like zsh).
Do you know if this behavior is defined by the POSIX standard?


>> zsh-4.3.11[t]% zsh -i<   a_script
>> zsh-4.3.11[t]%
>>
>>
>> No output with -i.
> You're confusing the effects of "zsh -i<a_script" with "zsh -i
> a_script".  The first one starts up zsh as an interactive shell, with a
> line editor, but with standard input (not commands, which are
> interactive) coming from a_script.  You'll find that prompt on the line
> after is inside the new interactive shell.  Try typing at this point:
>
> read
> print $REPLY
>
> You should see "exec ok".
>
> The rules for how zsh finds the commands and standard input are roughly:
>
> - Standard input is only redirected if you explicitly use a "<".
> (So "zsh a_script" leaves stdin where it is and cat hangs waiting for
> input.)  It's independent of interaction with the terminal for reading
> commands (though there's the more complicated issue of how the terminal
> gets set up in the first place).
>
> - If there's a script name, use that for commands, regardless of whether
> the shell is interactive or not.  (So "zsh -i a_script" behaves
> basically like without the -i, although you could have interactive shell
> commands such as vared in the script.)
>
> - If there's no script name and the shell is interactive, use the
> terminal for commands.
>
> - If there's no script name and the shell is not interactive, fall back
> to reading commands from standard input.  This is the only case (without
> making special arrangements) where commands and standard input come from
> the same channel.
>

If the shell is interactive, there's no script name nor explicit input 
redirection (<) ,
command and standard input come from the same channel too (the terminal),
or I'm missing something?



Thank you for the explanation!


Regards
Dimitre


  reply	other threads:[~2011-06-01 22:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-01 19:55 Fwd: " Radoulov, Dimitre
2011-06-01 20:42 ` Peter Stephenson
2011-06-01 22:03   ` Radoulov, Dimitre [this message]
2011-06-02  8:59     ` Peter Stephenson
2011-06-02  9:37       ` Radoulov, Dimitre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DE6B72B.6050806@gmail.com \
    --to=cichomitiko@gmail.com \
    --cc=p.w.stephenson@ntlworld.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).