Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Aug 2014 10:36:51 -0400
From:      Rick Miller <vmiller@hostileadmin.com>
To:        Arthur Chance <freebsd@qeng-ho.org>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: /bin/sh script not behaving as expected
Message-ID:  <CAHzLAVHH1t0WN8=BOzVsm=e0SMoqi9CCE75=EaOFSLz=ns_wpA@mail.gmail.com>
In-Reply-To: <53ECC716.2020106@qeng-ho.org>
References:  <CAHzLAVE1E8hZvZEnDko8-7cfx6JYypezi3oxs4vKKjxDzSzZnw@mail.gmail.com> <53ECC716.2020106@qeng-ho.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 14, 2014 at 10:26 AM, Arthur Chance <freebsd@qeng-ho.org> wrote=
:

> On 14/08/2014 15:13, Rick Miller wrote:
>
>> Hi all,
>>
>> I have shell code whose purpose is to determine the first disk in the
>> system where FreeBSD is to be installed.  The code is not behaving as
>> expected and I=E2=80=99m hoping that fresh pairs of eyes might help me i=
dentify
>> the
>> problem.
>>
>> Here is the script along with an explanation of the implementation and
>> description of the problem:
>>
>> #! /bin/sh
>>
>> disks=3D"da2 da1 da0";
>>
>> for d in ${disks}; do
>>     if [ -z "${disk}" -o "${disk}" '>' "${d}" ]; then
>>        : ${disk:=3D${d}};
>>     fi
>> done
>>
>>
>> echo $disk;
>>
>>
>> [ snip ]
>>
>>
> Your problem is in
>
>        : ${disk:=3D${d}};
>
> From man sh
>
> ${parameter:=3Dword}
>        Assign Default Values.  If parameter is unset or null, the expan=
=E2=80=90
>        sion of word is assigned to parameter.  In all cases, the final
>        value of parameter is substituted.  Quoting inside word does not
>        prevent field splitting or pathname expansion.  Only variables,
>        not positional parameters or special parameters, can be assigned
>        in this way.
>
> Once $disk has been set this form won't reset it.
>
> You should have
>
>         disk=3D"$d"
>

Excellent, thanks!  My understanding of parameter expansion was flawed.  I
appreciate the info.

--=20
Take care
Rick Miller



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHzLAVHH1t0WN8=BOzVsm=e0SMoqi9CCE75=EaOFSLz=ns_wpA>