[u-u] wow, post-tested loops in sh

Dan Astoorian djast at ecf.utoronto.ca
Mon Jul 4 11:50:11 EDT 2016


On Mon, 04 Jul 2016 10:25:24 EDT, "D. Hugh Redelmeier" writes:
> | From: Alan J Rosenthal <flaps at 56789.ca>
> 
> | All this follows from the syntax of the 'while' statement, but still, wow.
> 
> There's another lesson to take from this.  The understanding of the shell 
> that you had formed (and almost everyone else has too) is different from 
> the real thing.  That suggests that the real thing is wrong -- badly 
> designed for humans.

So, a language is wrong if it's possible to write things in it that can
be misunderstood or surprising?  Is C wrong because Duff's Device is
possible?

I think the only moderately surprising aspect is the fact that the
commands in the while condition's list can be separated by ";" (or, far
more perversely, "&"), as opposed to "&&" or "||"; I don't think that
many people would argue that:

    while pgrep "myprocess" >/dev/null && test $i -lt 5
    do
	: # ...
    done

should be syntactically invalid.

For a program from 1977, I think it's done okay for itself.

-- 
Dan Astoorian, Systems Administrator
Engineering Computing Facility
University of Toronto


More information about the u-u mailing list