3 simple steps to make booting/shutdown faster...
Behdad Esfahbod
behdad at behdad.org
Mon Feb 18 01:12:26 UTC 2008
On Sun, 2008-02-17 at 16:40 -0800, Andrew Farris wrote:
> Behdad Esfahbod wrote:
> >> On Sun, 17 Feb 2008 08:15:20 -0800, Arjan van de Ven wrote
> >>
> >>>> This should really be fixed in bash to short-circuit.
> >>> well......... not sure it can be done in the bash language.
> >>> (it may well guarantee that both get executed)
> >
> > There's nothing to execute there. All the expansions happen first, so
> > if you have things like [ -n "$something" -a "`id`" = 0 ], the `id` call
> > is made before passing control to "test". The short-circuit would just
> > happen in the evaluation in test. There's no user-visible difference
> > there.
>
> If thats the case shouldn't a statement like that always be nested so that `id`
> is not called if it is not necessary, possibly saving many disk accesses? It
> would seem that using the more complex constructs could be much slower if all
> the cases are evaluated before testing any of them.
I believe that's correct. The initial case that Arjan brought up though
was [ -f somefile -a -f anotherfile ]. That doesn't have this problem.
/me is surprised that this kind of micro-optimizing has such drastic
effects that Arjan has measured.
--
behdad
http://behdad.org/
"Those who would give up Essential Liberty to purchase a little
Temporary Safety, deserve neither Liberty nor Safety."
-- Benjamin Franklin, 1759
More information about the fedora-devel-list
mailing list