Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Jun 2010 13:17:47 +0800
From:      Aiza <aiza21@comclark.com>
To:        CyberLeo Kitsana <cyberleo@cyberleo.net>
Cc:        "questions@freebsd.org" <questions@freebsd.org>, Dan Nelson <dnelson@allantgroup.com>
Subject:   Re: .sh & getopts
Message-ID:  <4C0B2F7B.9040609@comclark.com>
In-Reply-To: <4C0B2AC1.1080805@comclark.com>
References:  <201006051513.o55FDCKj020952@mail.r-bonomi.com>	<4C0ADBCF.8040506@comclark.com>	<AANLkTimDVOQE-SrT7YO4UD3tktD81jy8px6dbbB83-Dl@mail.gmail.com>	<20100606014737.GG85961@dan.emsphone.com>	<4C0B1C61.9030501@comclark.com>	<4C0B26B5.3090901@cyberleo.net> <4C0B2AC1.1080805@comclark.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Aiza wrote:
> CyberLeo Kitsana wrote:
>> On 06/05/2010 10:56 PM, Aiza wrote:
>>>    i) action="installworld"; $flag_count=$((flag_count+1));;
>>> ...
>>> What is still wrong here
>>
>> Bourne shell expands variables to their contents before evaluating.
>> Thus, the above assignment ends up expanding to '0=1'. Leave out the $
>> on the target variable, and it becomes 'flag_count=1', which is more
>> likely what you intended.
>>
> 
> i) action="installworld"; flag_count=$((flag_count+1));;
> 
> But when tested it just put 1 into flag_count. it is not adding one to 
> the value all ready in  flag_count.
> 
> Stilling missing the point here
> I want to perform math here. if more than one flag is coded them I want 
> the count to increase by 1 for each flag on the command, not change the 
> contents of the count to 1.
> 
> Again take note this is .sh shell type.
> 
shift; while getopts :ugr: arg; do case ${arg} in
    u) action="freebsd-update";;
    g) action="freebsd-upgrade";;
    r) action="freebsd-rollback";;
    ?) exerr ${cmd_usage};;
esac; done; shift $(( ${OPTION} -1 ))

doing more testing if found that the above $(( ${OPTION} -1 )) 
subtraction is not work either.

echo "OPTION = $OPTION" shows a value of 5, which is the 4 flags plus 
the leading parm. I thought $(( ${OPTION} -1 )) meant it was subtracting 
1 from the parm count which should make it 4 which is the number of 
flags i passed.



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