This is the mail archive of the cygwin-talk mailing list for the cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Scripting fun! :-) (was Re: bash scripting nightmare. ( )

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!

Can't think of a witty .sigline today....

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]