>All of this is intentional, and not a bug.

It is possible to be both.

But, yes, it reflects a fundamental inconsistency in the C/Unix ecosystem.
The fact that in most programming languages (e.g., C, AWK), 0 means false and 
non-zero
means true, but in the shell, it is the opposite.

E.g., in AWK, I often want to do something like: exit(a == b)
which, obviously, doesn't work like you want it to.

P.S.  Note that there is an implicit assumption in this text that:

    false and failure mean the same thing
and
    true and success mean the same thing

Also, note that if you are running with "set -e" (or "trap ... ERR"), then 
having
"let" (or "(( ))") return a non-zero exit status when it happens to evaluate to 
zero,
could cause an unexpected script abort.

=================================================================================
Please do not send me replies to my posts on the list.
I always read the replies via the web archive, so CC'ing to me is unnecessary.

Note that they always end up in my Spam file anyway, so it is annoying to have 
to
periodically clean that out.

Reply via email to