Thread (8 messages) flat view 8 messages, 4 authors, 2016-06-15

Re: [PATCH] Supplant the "while case ... break ;; esac" idiom

From: Pierre Habouzit <hidden>
Date: 2016-06-15 22:43:36

On Mon, Sep 24, 2007 at 08:01:34AM +0000, Pierre Habouzit wrote:
On Mon, Sep 24, 2007 at 07:57:31AM +0000, David Kastrup wrote:
quoted
"David Symonds" [off-list ref] writes:
quoted
On 24/09/2007, David Kastrup [off-list ref] wrote:
quoted
Mike Hommey [off-list ref] writes:
quoted
On Sun, Sep 23, 2007 at 10:42:08PM +0200, David Kastrup wrote:
quoted
-while case $# in 0) break ;; esac
+while test $# != 0
Wouldn't -ne be better ?
Why?
Because -ne does a numeric comparison, != does a string comparison,
and it's a numeric comparison happening, semantically speaking.
I don't see the point in converting $# and 0 into numbers before
comparing them.  "!=" is quite more readable, and the old code also
compared the strings.
  Fwiw $# already is a number. Hence test $# -ne 0 is definitely a
better test.

  $# != 0 would yield sth like (strcmp(sprintf("%d", argc), "0"))
  $# -ne 0 would yield sth like (argc != atoi("0")).
  Of course this holds only for shell where test/[ is a builtin, which
is the at least the case for zsh, bash, and dash (but not posh).

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help