This is the mail archive of the
cygwin-talk
mailing list for the cygwin project.
RE: Scripting fun! :-) (was Re: bash scripting nightmare. ( )
- From: "Dave Korn" <dave dot korn at artimi dot com>
- To: "'hooray!'" <cygwin-talk at cygwin dot com>
- Date: Fri, 11 Aug 2006 02:19:45 +0100
- Subject: RE: Scripting fun! :-) (was Re: bash scripting nightmare. ( )
- Reply-to: The Cygwin-Talk Maiming List <cygwin-talk at cygwin dot com>
On 11 August 2006 00:12, Linda Walsh wrote:
> Dave Korn wrote:
>
>> Hey all, who's any good at bash scripting?
>>
> ---
> You are doing correctly, mostly. The simplest way to get from
> where you are, to where you want to be, is, well think of this:
> You have created a "command line" all stuffed into 1 variable, right?
> Ala: VAR="cvs co -D \"2006-08-10 15:00:00\" -P pci wimedia"
> The value of VAR (putting everything between two vertical bars) is:
> |cvs co -D "2006-08-10 15:00:00" -P pci wimedia|
> You have a "literal" expression in "VAR", meaning the quotes are stored
> as literals and have no special meaning. If you just try to use "execute"
> the literal, the arguments are passed in literally.
>
> What you want is for the quotes to regain their special meaning, which
> you can do by telling the shell to run it's "eval"uator over the expression
> again before executing, as in "eval $VAR". In line 9 of your code below,
> just add an "eval" before the argument.
Thankyou thankyou thank you THANK YOU!
That made it all seem so clear. I could see that the quote mark was getting attached to the first word and not keeping the two words as one arg, but I didn't know what it means or what to do with it. Eval'ing it worked perfectly, just like you said. Thanks for saving my sanity!
cheers,
DaveK
--
Can't think of a witty .sigline today....