Date: Fri, 14 Jun 2002 15:00:17 -0700 (PDT) From: Giorgos Keramidas <keramida@FreeBSD.org> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/39198: sh aborts on variables with periods Message-ID: <200206142200.g5EM0HN67513@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/39198; it has been noted by GNATS.
From: Giorgos Keramidas <keramida@FreeBSD.org>
To: parv <parv@pair.com>
Cc: Frank v Waveren <fvw@var.cx>, bug-followup@FreeBSD.org
Subject: Re: bin/39198: sh aborts on variables with periods
Date: Fri, 14 Jun 2002 23:21:43 +0300
On 2002-06-12 20:20 -0400, parv wrote:
> in message <1023918173HKC.fvw@yendor.var.cx>,
> wrote Frank v Waveren thusly...
> > On Wed, Jun 12, 2002 at 05:41:11PM -0400, parv wrote:
> > > if test $RANDOM = $RANDOM
> >
> > omg, you wicked wicked man. That will mysteriously misdetect on ksh/bash
> > once in 32767 times. Please don't.
>
> oh, come on, i am merely conveying what i got in the mail!
> anyway, i tried...
[snipetry of 32767 tests of a RNG ]
You're just too damn lucky that this didn't get you the same random
number. Your test of $RANDOM = $RANDOM will very possibly fail if
your RNG allows multiple occurences of the same number to appear in
the stream of random numbers, but will only fail very rarely, and will
go unnoticed until it's very late :P
If you absolutely *must* use $RANDOM for making this test, you should
probably use something like:
if [ X"${RANDOM}" = X"" ]; then
# $RANDOM failed
else
if echo "${RANDOM}" | \
grep '^[[:digit:]]\+$' >/dev/null 2>&1 ;then
# # $RANDOM exists and works as expected
else
# $RANDOM isn't null, but is not a number
# either. Oops!
fi
fi
- Giorgos
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206142200.g5EM0HN67513>
