[Sussex] Trouble with BASH scripting....
Richie Jarvis
richie at helkit.com
Mon Feb 20 22:09:33 UTC 2006
Richie Jarvis wrote:
> Hi Folks,
>
> Having a few problems with a bash installation script I am trying to
> write at the moment, and was wondering if some of our experts might be
> able to give me a hint...
>
> What I want, is a function (called execute) which accepts a series of
> parameters, and executes them. If they work, great, if they fail,
> then exit the script code 1.
>
> Heres my attempt at this function, but it doesn't always work - some
> commands mess up:
>
> execute() {
> $*
> if [ $? -ne 0 ]
> then
> echo Command Failed: $*
> exit 1
> fi
> }
>
> This works fine for simple commands, and even some more complex ones
> as well!
>
> For example:
> These all work:
> execute sed -e
> "s/http.*mvpdm/http\\\:\/\/$DM_URL\\\:$DM_PORT\/mvpdm/g"
> mvpdm.properties.tmp > mvpdm.properties
> execute unzip -d $STAGE_DIR -o mvpcore* > /dev/null
>
> But this falls flat on its face, and I cannot for the life of me work
> out why (been trying all afternoon!)
> execute sed -e "s:.FileHandler.pattern =.*:.FileHandler.pattern
> =$INSTALL_DIR/logs/mvpdm.log:g" logging.properties.tmp >
> logging.properties
>
> The error it gives is this, which seems to imply to me that something
> on the quoting is going awry, but it works when run from the command
> line (stepping thru the script):
> This appears in the logging.properties file:
> Command Failed: sed -e s:.FileHandler.pattern =.*:.FileHandler.pattern
> =/home/richie/mvpinstall/logs/mvpdm.log:g logging.properties.tmp
> And at the prompt I get this:
> sed: -e expression #1, char 22: Unterminated `s' command
>
> So whats going on?
>
> Thanks in advance,
>
> Richie
>
Ok - i think I know what is going on here (and yes, I know its bad form
to post a reply to yourself! ;) )
I think its the space that is messing things up here. Shoving it into
the function seems to be removing the " from the line. Escaping them
doesn't seem to work either, so whats the solution to keeping them???
Or, more accurately (seeing as I have tried escaping them!) whats the
proper way to do this, with a space inside the search part of the
pattern match??
Thanks,
Richie
--
Richie Jarvis
Email: richie at helkit.com
Website: http://www.helkit.com
Phone: 0207 100 6879 or 3808676 at sipgate.co.uk
More information about the Sussex
mailing list