From: David Kastrup Date: Sun, 23 Sep 2007 08:59:36 GMT Subject: Re: [PATCH] Allow shell scripts to run with non-Bash /bin/sh Message-ID: <85ir61rc3r.fsf@lola.goethe.zz> In-Reply-To: <7vtzpnf6c9.fsf@gitster.siamese.dyndns.org> Junio C Hamano writes: > Eygene Ryabinkin 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