my lame attempt at a shell script...
Tom Vilot
tom at vilot.com
Thu Jan 6 17:28:40 PST 2005
Eric F Crist wrote:
>
> First off, thanks again for all the help you've offered thus far.
> That being said, I'm having a problem with variables in a function.
> The code I'm having a problem with is:
>
> setup_loopback () {
> ${fwcmd} add ${rulenum1} pass all from any to any via lo0;
> ${rulenum1}=`expr $rulenum1 + 50`
> ${fwcmd} add ${rulenum1} deny all from any to 127.0.0.0/8;
> ${rulenum1}=`expr $rulenum1 + 50`
> ${fwcmd} add ${rulenum1} deny ip from 127.0.0.0/8 to any;
> ${rulenum1}=`expr $rulenum1 + 50`
> }
>
> The output of this, when run, is:
>
> 00050 allow ip from any to any via lo0
> 50=100: not found
> 00050 deny ip from any to 127.0.0.0/8
> 50=100: not found
> 00050 deny ip from 127.0.0.0/8 to any
> 50=100: not found
>
> This tells me that it's doing the math correctly, but it's not
> reassigning the calculated value back to the variable.
>
> Any pointers?
this is a very common mistake and is one of those things about sh and
bash that drives me batty, too.
You're thinking like perl. :c)
Stripping it down to a test script, I have this:
-----
rulenum=50
rulenum=`$rulenum + 50`
echo $rulenum
----
I believe that is what you are after.
When you *assign* you don't use $
More information about the freebsd-questions
mailing list