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>