Ok I lied. I understand why its not working but how should I workaround
it?
Do I have to have my script gather a list of the files and the pass it
the variable?
That sucks that I can not use a wildcard to just get all.

I have made these changes. Which I though would fix my problem.
string="My Documents/"
cp "${string}*" Which I thought would eliminate the problem. I guess I
am not understanding.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of James Mohr
Sent: Monday, October 14, 2002 3:58 PM
To: [EMAIL PROTECTED]
Subject: Re: Variable Quoting



On Monday 14 October 2002 20:38, Paul Kraus wrote:
<SNIP>
> Now with this change
> string="My Documents/*"
> cp "$string" /tmp
>
> cp: cannot stat 'My Documents/*':no such file or directory

Sure because the token that is passed to the cp command includes the
asterisk, 
it doesn't know that it should expand the asterisk (*) to the file
names, so 
it looks for a file with the literal name '*'. 

> So then I for kicks I tried.
>
> cp "My Documents/*" /tmp
> Produces the same error.

Same thing.

>
> So just to make sure that it was not a typo in path I tried. cp My\ 
> Documents/* /tmp
>
> And this worked.

Makes sense as the shell is now expanding the asterisks to the names of
the 
files. You don't see this because it is expanded internally. Create a
shell 
script that just does this copy and put "set -x" on the first list. This

should show you the expanded form before it is passed to cp.

> So is the problem with cp? Since the same syntax seems to work with 
> all other apps? Is cp not capable of taking a double quoted path with 
> spaces?

No, it is the fact that cp does not know to expand the asterisk. Plus
you are 
passing different things to the cp depending on what sets of quotes you
use.

> Redhat 7.3 in case it helps.
Actually the Linux distriubtion is pretty irrelevant in this case. In
fact the 
behavior would be the same on most any *NIX system, as it is standard
shell 
stuff. 

See if these explain more of the details for you:

http://www.linux-tutorial.info/cgi-bin/display.pl?20&0&0&0&3
http://www.linux-tutorial.info/cgi-bin/display.pl?22&0&0&0&3

regards,

jimmo

-- 
---------------------------------------
"Be more concerned with your character than with your reputation. Your
character is what you really are while your reputation is merely what
others think you are." -- John Wooden
---------------------------------------
Be sure to visit the Linux Tutorial:  http://www.linux-tutorial.info
---------------------------------------
NOTE: All messages sent to me in response to my posts to newsgroups or
forums 
are subject to reposting.
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie"
in the body of a message to [EMAIL PROTECTED] More majordomo
info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

Reply via email to