On Wed, Jan 02, 2002 at 08:34:25PM -0600, Jamie Ostrowski wrote: > > > > > I am trying to write a shell script that takes the first argument > from the command line as the user to whom a file is placed in their home > directory. I can't seem to get this to run. Normally, it wouldn't be a big > deal, you'd just do > > cp filename /home/$1 > > but what throws a monkey wrench into the works is that there are > several different home partitions some users are in home, others in > home1,home2,home3, etc. and the following doesn't work: > > cp filename ~${1}/ > > because it interprets the ~ as a character rather than an operator. > > Anyone have any ideas how I can get around this? Everytime I try to > run? Seems you can't combine the ~ with a variable. I assume your trying this in bash as your shell. If you are at all familar with tcsh you might want to use tcsh, since ~ works as expected in tcsh. The following script worked for me. #!/bin/tcsh cp foo ~${1}/ If its a long script and you already know perl, I would use that. If its pretty short, tcsh works ok. Oh, wait I knew there had to be a Bourne way to do it. Try this: #!/bin/sh this_home=`eval echo ~$1/` cp foo $this_home -- Jim Crumley |Twin Cities Linux Users Group Mailing List (TCLUG) crumley at fields.space.umn.edu |Minneapolis/St. Paul, Minnesota Ruthless Debian Zealot |http://www.mn-linux.org/ Never laugh at live dragons |Dmitry's free,who's next? http://faircopyright.org