From: Ray Andrews <rayandrews@eastlink.ca>
To: zsh-users@zsh.org
Subject: Re: for loop question
Date: Mon, 03 Nov 2014 22:37:47 -0800 [thread overview]
Message-ID: <5458743B.2000204@eastlink.ca> (raw)
In-Reply-To: <141103184338.ZM32221@torch.brasslantern.com>
On 11/03/2014 06:43 PM, Bart Schaefer wrote:
> The 0 is appended because [ -n "$TLC[i]" ] does not produce any output,
But in
if [ -n "$TLC[i]" ]
... the test must surely produce an answer of some sort. Yes or no. If
that answer is not
acceptable as 'arithmetic', then what is it?
! $([ -n "$TLC[i]" ]; echo $?)
'echo $?' seems to receive a one or a zero, and that's 'arithmetic', so
why does
! $([ -n "$TLC[i]" ]);
... not do exactly the same thing? Why do we need 'echo' to cough up
a testable number? What does the '$?' do but carry the return value of
the test? And what would break if the test just returned it's own
return value with no need for help from 'echo $?' to restate it? When we use
the 'if' form above, we don't need the help of 'echo $?' so why do
we need it inside 'for (('? It seems like a pointless limitation.
Maybe a trivial limitation, but still pointless. Indeed:
[ -n "$TLC[i]" ] && echo "Yup, there's something in there"
... so the [] test doesn't even need 'if' to work, it *does* produce
a testable return value, and IMHO that's 'arithmetic', so it should
work in 'for (('.
Which, by the way, points out another reason you can't just use the
exit status of a command in a math context: command success/failure
are the reverse of true/false when taken as integer values.
Sure, but we get used to using '!' to reverse true/false, no? You
hafta wonder, tho, how that
convention ever got started. '0' is 'false', yet functions return '0' on
success. AFAIK it has
always been like that.
next prev parent reply other threads:[~2014-11-04 5:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-02 20:47 Ray Andrews
2014-11-02 21:00 ` Bart Schaefer
[not found] ` <CAH+w=7aWS0xyS4CXRJBphDjesfUFQOsyJRMaG3RZRxmuj7xkOg__20885.3257158355$1414962125$gmane$org@mail.gmail.com>
2014-11-02 21:37 ` Stephane Chazelas
2014-11-02 22:44 ` Ray Andrews
2014-11-02 22:57 ` Bart Schaefer
2014-11-02 23:24 ` Oliver Kiddle
2014-11-03 0:07 ` Ray Andrews
2014-11-03 1:53 ` Mikael Magnusson
2014-11-03 2:22 ` Ray Andrews
2014-11-03 9:22 ` Mikael Magnusson
2014-11-03 17:26 ` Ray Andrews
2014-11-04 1:56 ` Han Pingtian
2014-11-04 2:29 ` Han Pingtian
2014-11-04 2:43 ` Bart Schaefer
2014-11-04 4:51 ` Han Pingtian
2014-11-04 6:37 ` Ray Andrews [this message]
2014-11-04 7:13 ` Bart Schaefer
2014-11-04 18:00 ` Ray Andrews
[not found] ` <141103184338.ZM32221__48957.5251042426$1415069142$gmane$org@torch.brasslantern.com>
2014-11-04 7:08 ` Stephane Chazelas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5458743B.2000204@eastlink.ca \
--to=rayandrews@eastlink.ca \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).