On Sun, Oct 12, 2008 at 09:42:38AM +0100, Matthew Seaman wrote:
> mdh wrote:
>> --- On Sat, 10/11/08, Gary Kline <[EMAIL PROTECTED]> wrote:
>>>     On the Ubuntu computer I am /home/kline; on my main
>>> computer,
>>>     my home is /usr/home/kline.   The following sh script
>>> worked
>>>     perfected when my home on "tao" [FBSD] was
>>> /home/kline:
>>>
>>> P
>>> #!/bin/sh
>>>
>>> PWD=`pwd`;
>>> echo "This directory is [${PWD}]";
>>>
>>> scp -qrp  ${PWD}/* ethos:/${PWD}
>>> ###/usr/bin/scp -rqp -i /home/kline/.ssh/zeropasswd-id
>>> ${PWD}/* \ klin
>>> [EMAIL PROTECTED]:/${PWD}
>>>
>>>     Question #1: is there any /bin/sh method of getting rid of
>>> the
>>>     "/usr"?  I switch off between my two computers
>>> especially when
>>>     get mucked up, as with my upgrade to kde4.  (Otherwise, I
>>> do
>>>     backups of ~kline as well as other critical directories.)
>>>
>>>     Is there a way of automatically using rsync rather that my
>>>     kwik-and-dirty /bin/shell script?
>>>
>>>     thanks, people,
>>>
>>>     gary
>>
>> If what you wish to do is simply get rid of /usr in a string, you can use 
>> sed like so:
>> varWithoutUsr=`echo ${varWithUsr} |sed -e 's/\/usr//'`
>> After running this, where $varWithUsr is the variable containing a 
>> string like "/usr/home/blah", the variable $varWithoutUsr will be equal 
>> to "/home/blah".  I create simple scripts like this all the time to 
>> rename batches of files, for example.  
>>
>> The easier way is probably just to not specify a dir to scp's remote 
>> path though, since it defaults to the user's home directory.  
>
> Or, in anything resembling Bourne shell:
>
> varWithoutUsr=${varWithUsr#/usr}

And I'll take a moment to recommend Matthew's method, since it does not
involve fork()ing an additional process.

When writing shell scripts in general, it's best if you can avoid
spawning external processes for things which can be done easily
(keyword: easily!) within Bourne natively.  There's no harm in doing it
for more complex things, but fork() is somewhat expensive, and try to
imagine what will happen to those scripts if the system lacks process
table space, etc...  :-)  Best to try and make everything
"self-contained" if possible.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to