zsh-workers
 help / color / mirror / code / Atom feed
From: Andrej Borsenkow <borsenkow.msk@sni.de>
To: Zoltan Hidvegi <hzoli@cs.elte.hu>
Cc: Zsh workers list <zsh-workers@math.gatech.edu>
Subject: sh compatibility again :->
Date: Thu, 8 Aug 1996 19:13:48 +0400 (MOW)	[thread overview]
Message-ID: <Pine.SV4.3.95.960808183228.608E-100000@itsrm1> (raw)
In-Reply-To: <199607312111.XAA25395@bolyai.cs.elte.hu>

On Wed, 31 Jul 1996, Zoltan Hidvegi wrote:

> 
> Zsh can emulate the POSIX shell and the Korn shell quite well when it is
> invoked as sh or ksh respectively.  /bin/sh can be safely linked to zsh.
>                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I wouldn't put it in. I dared to link zsh to /bin/sh and reboot the
system. It did come up - without /proc, /dev/fd and network ;-<

Here are some points, where zsh choked.

1. It doesn't like malformed constructs like

A="`cat /some/file"    (note missed backtick)

zsh tries to parse command substitution behind closing double-quote, and
ends up with `missing "' at the end of script. Our /bin/sh stops at
closing double-quote. In POSIX the result is undefined - thus, techically
neither violate it. 

2. Our /bin/sh silently ignores break's in case statement (I mean it; it
doesn't break out of case). zsh loudly complaints (well, it is rather
cosmetic).

3. The last bit, when I stopped this experiment. Our sh starts complex
command with redirections in subshell; that is

while read;
do
....
done < /some/file

is evaluated in subshell. The problem is, that some scripts use EXIT!!
rather than break to such loop. Well, I could do nothing against it.


These are just FYI; in no way would I suggest to mimic every historical
(broken?) sh; but it still means, that it is *not* safe to link /bin/sh to
zsh on *every* system. Probably, statement about POSIX conformance is
enough?

But the following things could probably be fixed 

4. Traditional /bin/sh interprets `set -' as set +xv. It could be well
undocumented (it is not on our system) but still is so. Could anybody test
it on more than one systems? zsh silently sets positional parameters to
null. At least on our system many startup scripts include 

set -$DEBUG

at the script start (intent is to set DEBUG=x somewhere in /etc/rc2 to see
what's going on). Under zsh, script just loses its arguments and ends up
with error (it is SVR4 startup scripts are called with
/bin/sh /etc/rc2.d/S*something start
if `start' is not there, script just exits). 

5. Currently zsh sets BSD_ECHO when running as sh. Our sh does support
escapes in echo; I recall that SCO sh does it as well. I don't know about
others. What about relaxing it? If scripts doesn't rely upon escapes in
echo, it would make no harm.


Sorry for long mail. Actually (apart from echo) I found *no* problems,
caused by zsh; so it is more our /bin/sh to blame ;)

greetings

-------------------------------------------------------------------------
Andrej Borsenkow 		Fax:   +7 (095) 252 01 05
SNI ITS Moscow			Tel:   +7 (095) 252 13 88

NERV:  borsenkow.msk		E-Mail: borsenkow.msk@sni.de
-------------------------------------------------------------------------



  parent reply	other threads:[~1996-08-08 15:50 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-07-31 21:11 Announcement draft Zoltan Hidvegi
1996-07-31 22:15 ` Zefram
1996-08-01  6:36 ` Bas V. de Bakker
1996-08-01  8:31   ` Peter Stephenson
1996-08-01  9:04     ` Running zsh as sh (Was: Announcement draft) Bas V. de Bakker
1996-08-01  9:10     ` Announcement draft Andrej Borsenkow
1996-08-01 13:49       ` Here docs Peter Stephenson
1996-08-01 14:07         ` Zoltan Hidvegi
1996-08-01 16:27           ` More Configure problems Peter Stephenson
1996-08-01 17:40             ` Peter Stephenson
1996-08-01 17:55               ` Zoltan Hidvegi
1996-08-01 21:03                 ` Zoltan Hidvegi
1996-08-01 23:30                   ` Zoltan Hidvegi
1996-08-02  8:32                   ` Peter Stephenson
1996-08-02 10:03                     ` Andrej Borsenkow
1996-08-02 13:29                       ` Zoltan Hidvegi
1996-08-02  1:03             ` Zefram
1996-08-01 14:42   ` Announcement draft Zoltan Hidvegi
1996-08-08 15:13 ` Andrej Borsenkow [this message]
1996-08-12  2:18   ` sh compatibility again :-> Zoltan Hidvegi
1996-08-12  4:36     ` Bart Schaefer
1996-08-12  5:00       ` Zefram
1996-08-12  6:01         ` Bart Schaefer
1996-08-12  6:34           ` Bart Schaefer
1996-08-12  6:20       ` Andrej Borsenkow
1996-08-12 15:29 whukriede

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=Pine.SV4.3.95.960808183228.608E-100000@itsrm1 \
    --to=borsenkow.msk@sni.de \
    --cc=hzoli@cs.elte.hu \
    --cc=zsh-workers@math.gatech.edu \
    /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).