Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Aug 2014 03:05:41 +0000
From:      Cary <cary@SDF.ORG>
To:        Warren Block <wblock@wonkity.com>, Rick Miller <vmiller@hostileadmin.com>,  FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: /bin/sh script not behaving as expected
Message-ID:  <20140815030541.GA20578@SDF.ORG>
In-Reply-To: <20140815015559.GA21249@SDF.ORG>
References:  <CAHzLAVE1E8hZvZEnDko8-7cfx6JYypezi3oxs4vKKjxDzSzZnw@mail.gmail.com> <alpine.BSF.2.11.1408141143010.53473@wonkity.com> <20140815015559.GA21249@SDF.ORG>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 15, 2014 at 01:55:59AM +0000, Cary wrote:
> > On Thu, 14 Aug 2014, Rick Miller wrote:
> > 
> > >Hi all,
> > >
> > >#! /bin/sh
> > >
> > >disks="da2 da1 da0";
> > >
> > >for d in ${disks}; do
> > >  if [ -z "${disk}" -o "${disk}" '>' "${d}" ]; then
> > >     : ${disk:=${d}};
> > >  fi
> > >done
> > 
> > The algorithm is not clear to me,
> 
> Nor me. 
> Rick,  I don't understand the test.  Would just
> 					
> if [ -z "${disk}" ]; then 
> 
> suffice ?  Single-quoting the > operator looks like an error that would have
> prevented the shell from executing the script.

Ok, it is possible. 
You can see that with or without quotes around the comparison operator
the test is the same.

$ if [ foo != bas ] ; then echo bar;fi
bar
$ if [ foo '!=' bas ] ; then echo bar;fi
bar

> > or, more correctly,
> > 
> >   disk=`sysctl -n kern.disks | tr " " "\n" | sort | head -n1`
> > _______________________________________________



-- 
cary@sdf.org
SDF Public Access UNIX System - http://sdf.org



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