[comp.unix.shell] rsh guru question - summary

yeates@motcid.UUCP (Tony J Yeates) (04/24/91)

I was overwhelmed by the response to my query:-
>Does anybody know a good way to get around this (ie export
>your current environment to rsh).  This seems to be a
>severe restriction.

(There were some more details too)
Thank you all for taking the time to help, here's a brief summary  (their were
many variations, some of which I still need to try) of the replies, :-

1) Reset your path in .cshrc/.kshrc/.tcshrc.  I'm actually doing this now, it
works for ~90% of what I want to do, but it doesn't export my current PATH
only my initial PATH.  Also, I've seen a lot of people "bitten" by altering
their PATH in their .cshrc - it seems a dubious practise IMHO.

2) Use SUN OS command "on".  Definitely a possibility, although it is a little
quirky (e.g. on <hostname>....I can't get a prompt), I'm told its a little
"flakey" but I intend to investigate further.

3) Use: rsh <host> "setenv PATH $PATH; <command>"   (or ksh equiv.)
This works fine - but I don't want to have to type all that in each time I use
an rsh.  Creating a script or alias that works well proved more difficult 
than I had expected.  The best result I got was this:-

	alias rshy  "rsh \!^ \"setenv PATH ${PATH} ;\" \!:2*"

which seems to work (csh & tcsh)e.g. rsh myhost1 'echo $PATH'
(the single quotes are to prevent $PATH being expanded before the rsh is invoked).

-------------------------------------------------------------------------------
JUST FOR INTEREST
=================
Here is one of my attempts to export my whole environment (useful if you have
tools which rely on env. variables):-
[This was going to be another problem - but I just had a flash of inspiration]
alias:
	alias rshx  "rsh \!^ `env | sed -e 's/^/setenv /' | tr '\012' ';'` ; \!:2*"
(Use rshx exactly as you would rsh, rsh <host> <command>)

The sed part should really be replaced with a sed script file that quotes (") the
value of each env. var., like:-
env | sed -e 's/^/setenv /' -e 's/=/="/' -e 's/$/"/' | tr '\012' ';' 
(this works fine on the command line, but I found it a problem in an alias...
a sed-file should prob fix that tho')
-------------------------------

I also wanted to be able to invoke an rsh that would by default to my c.w.d.,
out of the above I salvaged this:-

alias rshp  "rsh \!^ cd $cwd ';' \!:2*"

which seems to work okay (so far!)...doesn't work for rlogins via rsh unfortunatly tho'.
-------------------------------------------------------------------------------