Date: Tue, 6 May 1997 07:54:44 -0800 (AKDT) From: Steve Howe <un_x@anchorage.net> To: freebsd-questions <questions@freebsd.org> Subject: tests Message-ID: <Pine.BSF.3.95q.970506072104.11459A-100000@aak.anchorage.net>
next in thread | raw e-mail | index | archive | help
i guess this is the way "test"s work, in case
it gives anyone new to sh programming some troubles ...
------------------------------------------------------------------------
all integers are strings, but only numeric strings are "integers".
[ x ] only fails on the null string, ""(ascii 0), not on 0 (ascii 48).
any test, results in a 0(ascii 0) or 1(ascii 1).
! x is only true if x is ""(ascii 0), so it may only be used to
test for the null string ("") and the result of a test([]).
therefore, -gt, -lt, -ge, -le may only be used on numeric strings,
the "-" tests force a stringTOint conversion for the comparison,
is my guess.
and so -eq/= and -ne/!= may be used interchangably, as long as you
never use an alphabetic character in a -eq/-ne comparison,
since a stringTOint conversion must be done w/ -ne and -eq..
-------------------------------------------------------------------------
i'm "fairly" sure this is correct!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.970506072104.11459A-100000>
