Re: [PATCH] Allow shell scripts to run with non-Bash /bin/sh
- From
David Kastrup <dak@gnu.org>
- Date
- Sep 23, 2007, 08:59 UTC
- Message-ID
- <85ir61rc3r.fsf@lola.goethe.zz>
- In-Reply-To
- <7vtzpnf6c9.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 11 quoted lines
> Eygene Ryabinkin <rea-git@codelabs.ru> writes: > >> OK, you're right. Especially if /bin/sh from Solaris and OpenBSD >> are working and they are not Bash. But I would not tell that >> the shell is broken now -- I had not seen the POSIX specification. >> Does it specifies how the shell should work in this case? > > I have always been assuming it to be the case (this construct is > not my invention but is an old school idiom I just inherited > from my mentor) and never looked at the spec recently, but I > re-read it just to make sure. The answer is yes.
Independent of that: would you mind a patch replacing that idiom with
while : do case xxx) break; esac
instead? I find breaking out of the condition rather than the body awkward, and I find a non-matching case statement, POSIX or not, quite unobvious in the place of a true while condition.
It is a bit too much of cleverness for my taste. Never mind that the current FreeBSD shell does not understand it due to being buggy: I find that this is not very readable to the human reader either without a double take.
-- David Kastrup, Kriemhildstr. 15, 44793 Bochum