Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Nov 2017 13:56:59 +0100
From:      Polytropon <freebsd@edvax.de>
To:        Trond =?ISO-8859-1?Q?Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
Cc:        freeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: how to code a timer loop in a sh script
Message-ID:  <20171108135659.dab81adf.freebsd@edvax.de>
In-Reply-To: <alpine.BSF.2.21.1711080824130.1036@mail.fig.ol.no>
References:  <5A00A826.2000501@gmail.com> <CADqw_g%2BouzDLBdPosKiPSmRZuP6Am%2Bc7OGUZPGWX249D97DUhQ@mail.gmail.com> <alpine.BSF.2.21.1711080824130.1036@mail.fig.ol.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 8 Nov 2017 08:25:55 +0100 (CET), Trond Endrest=F8l wrote:
> On Mon, 6 Nov 2017 19:24+0100, Michael Schuster wrote:
>=20
> > while [ 1 ]; do
> >     do_stuff
> >     sleep 600
> > done
>=20
> This should be even better:
>=20
> while true; do
>     do_stuff
>     sleep 600
> done

Yes.

While /usr/bin/true always evaluates to true (as desired),
"test 1" depends on if it's an internal or external command
which depends on the shell, and if the implementation conforms
to the standard. In this specific case, 1 would be seen as "1",
a non-empty string, and therefore should cause test to return 0,
as a non-empty string evaluates to true.

>From "man test":

     string        True if string is not the null string.

As the 1 is the only expression tested, this rule applies.
No math included. ;-)




--=20
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171108135659.dab81adf.freebsd>