Re: [Bashburn-info] Nick, I'm reverting the change you made to configfunc.sh
Brought to you by:
bashburn
From: Nick W. <ni...@li...> - 2008-09-29 19:47:09
|
On Mon, 29 Sep 2008 15:25:29 -0400 (EDT) "Steven W. Orr" <st...@sy...> wrote: > On Monday, Sep 29th 2008 at 14:00 -0000, quoth Nick Warne: > > =>On Mon, 29 Sep 2008 13:53:12 -0400 (EDT) > =>"Steven W. Orr" <st...@sy...> wrote: > => > =>> On Monday, Sep 29th 2008 at 13:41 -0000, quoth Nick Warne: > =>> > =>> =>On Mon, 29 Sep 2008 13:38:13 -0400 (EDT) > =>> =>"Steven W. Orr" <st...@sy...> wrote: > =>> => > =>> =>> On Monday, Sep 29th 2008 at 13:29 -0000, quoth Nick Warne: > =>> =>> > =>> =>> =>On Mon, 29 Sep 2008 18:25:56 +0100 > =>> =>> =>Nick Warne <ni...@li...> wrote: > =>> =>> => > =>> =>> =>> On Mon, 29 Sep 2008 13:21:47 -0400 (EDT) > =>> =>> =>> "Steven W. Orr" <st...@sy...> wrote: > =>> =>> =>> > =>> =>> =>> > Just so you know what's happening, > =>> =>> =>> > > =>> =>> =>> > (( ${!BB_CONFIG_VAR} == 0 )) && return 1 > =>> =>> =>> > > =>> =>> =>> > says, "Indirect through BB_CONFIG_VAR and see if it's > value =>> is =>> 0. =>> > BB_CONFIG_VAR is only ever equal to either > =>> =>> BB_CONFIG_MODIFIED or =>> > BB_ADVANCED_CONFIG_MODIFIED. > Both of =>> =>> those variables are declared =>> > to be of type > integer using =>> =>> typeset -i =>> > > =>> =>> =>> > typeset -i BB_CONFIG_MODIFIED=0 > =>> =>> =>> > typeset -i BB_ADVANCED_CONFIG_MODIFIED=0 > =>> =>> =>> > > =>> =>> =>> > So, if you test (( ${BB_CONFIG_VAR} == 0 )) it will > always =>> be =>> =>> > false. And if you test to see if it's equal > to 'true' =>> then =>> that's a =>> > problem also because you're > testing it inside =>> an =>> arithmetic test, =>> > i.e. (( )) > instead of [[ ]]. Because =>> bash does =>> not require integer =>> > > variables to be preceeded by =>> a dollarsign =>> in an arithmetic > context, =>> > it should complain =>> that there is no =>> variable > called true but =>> > instead it just =>> converts the true to a =>> > 1 because it's not equal to =>> > 0. =>> =>> =>> > > =>> =>> =>> > Something is going on where you might have (for some > reason =>> I =>> don't =>> > know about) a value for BB_CONFIG_VAR of > null (""). =>> =>> =>> > > =>> =>> =>> > I need to see more about why you're getting a syntax > =>> problem. =>> =>> > > =>> =>> =>> > > =>> =>> =>> > =>> =>> =>> Attached in script output. > =>> =>> => > =>> =>> =>Ummm. WTF. Bloody thing got stripped of the mail - let me > =>> gzip it. =>> > =>> =>> I just checked in a change. Tell me if it fixes it for you. > =>> =>> > =>> =>> Also, what rev of bash are you running? > =>> =>> > =>> =>Nope, same issue. > =>> => > =>> =>GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu) > =>> =>Copyright (C) 2005 Free Software Foundation, Inc. > =>> > =>> Don't know what to say. Can you start putting print statements in? > =>> When you go into bbconfmenu, BB_CONFIG_VAR *has* to be one or the > =>> other. > =>> > =>> You can see it being set in configure and advanced. > =>> > =>Well, you could be onto something here. Glad I am not going mad > =>again... > => > =>My changes marked <---HERE: > => > =># Confirmation routine on leaving configuration. > =>get_confirm() > =>{ > =>echo "$BB_CONFIG_VAR" <--------------------------------- HERE > =>(( ${!BB_CONFIG_VAR} == 0 )) && return 1 > => > => > =>And the output running BB: > => > =>|-(Actions) > =>|- 19) Apply changes > =>|- 20) Apply defaults > =>|- 21) Revert changes > =>|- 22) Back > =>Your Choice? |> 22 > => > =>BB_CONFIG_MODIFIED <--------------- HERE > =>/usr/lib/Bashburn/lib/func/configfunc.sh: line 33: ((: == 0 : syntax > =>error: operand expected (error token is "== 0 ") It appears you > changed =>an option but did not apply it. > => > =>Here you can select 'n' to go back and do so; > =>If you wish to ignore the change, select 'y'. > > This kinda sucks having to do this long distance like this. > > Next step might be, after your echo, to add something like > > echo "!BB_CONFIG_VAR = ${!BB_CONFIG_VAR}" > > Having said that, I have an idea.... > > I'm wondering if you're somehow causing the ! in ${!stuff...} to be > interpreted as a history expansion character. > > Run this one liner for me: > > #! /bin/bash > echo $SHELLOPTS > > The value printed for me is > braceexpand:hashall:interactive-comments > > If yours is printing out something that has histexpand in it then > we've found the problem. I kind of doubt it but it's worth checking. > ./test braceexpand:hashall:interactive-comments The same. Now, this happened before - you sure you updated all the files Steve? You haven't got a rogue in your local that hasn't been committed yet? Nick -- Free Software Foundation Associate Member 5508 |