Bourne shell short-circuit operators improperly documented

Adrian Wontroba aw1 at stade.co.uk
Sat Jul 18 00:38:43 UTC 2009


On Fri, Jul 17, 2009 at 04:57:12PM -0600, Brett Glass wrote:
>    Short-Circuit List Operators
>      ``&&'' and ``||'' are AND-OR list operators.  ``&&'' executes the first
>      command, and then executes the second command if the exit status of the
>      first command is zero.  ``||'' is similar, but executes the second com-
>      mand if the exit status of the first command is nonzero.  ``&&'' and
>      ``||'' both have the same priority.
> 
> This is exactly backward.

No it is succinctly correct but confusing (the UNIX way?). These
operators work on exit codes where 0 = success = true and and !0 =
failure = false.

[aw1 at steerpike ~]$ sh
$ true && echo true
true
$ false || echo false
false
$ true; echo $?
0
$ false; echo $?
1
$ exit

-- 
Adrian Wontroba
Confused? You will be. Just watch ...


More information about the freebsd-chat mailing list