tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Next steps for /bin/sh



On Sun, 28 Feb 2016 04:26:13 +0700
Robert Elz <kre%munnari.OZ.AU@localhost> wrote:

>   | > 	sh -c 'set -e; false && false; echo foo'
> 
> the shell given the comamnd above should exit(1) and not print "foo"
> when the 2nd of the two "false" commands is executed.
...
> When the first "false" in   false && false   is executed, its exit
> status is being checked by the && operator, so -e does not apply to
> it. (Everyone agrees with this.)

I must be missing something.  The second false should never execute,
whether or not -e is in force.  

It's ancient and common practice to use short-circuiting, as in:

	$  test -f foo && echo yes   
	$

Given "false && X", X never executes, -e or no.  

IMO, in the presence of -e, "false && false" should terminate
execution, just as "false && true" should.  The entire compound
statement is false because the first one is.  

--jkl


Home | Main Index | Thread Index | Old Index