Why do I get [some strange error message] when I "rsh host command" ?
(We're talking about the remote shell program "rsh" or sometimes"remsh" or "remote"; on some machines, there is a restricted shell
called "rsh", which is a different thing.)
If your remote account uses the C shell, the remote host will
fire up a C shell to execute 'command' for you, and that shell
will read your remote .cshrc file. Perhaps your .cshrc contains
a "stty", "biff" or some other command that isn't appropriate for
a non-interactive shell. The unexpected output or error message
from these commands can screw up your rsh in odd ways.
Here's an example. Suppose you have
stty erase ^H
biff y
in your .cshrc file. You'll get some odd messages like this.
% rsh some-machine date
stty: : Can't assign requested address
Where are you?
Tue Oct 1 09:24:45 EST 1991
You might also get similar errors when running certain "at" or
"cron" jobs that also read your .cshrc file.
Fortunately, the fix is simple. There are, quite possibly, a
whole *bunch* of operations in your ".cshrc" (e.g., "set
history=N") that are simply not worth doing except in interactive
shells. What you do is surround them in your ".cshrc" with:
if ( $?prompt ) then
operations....
endif
and, since in a non-interactive shell "prompt" won't be set, the
operations in question will only be done in interactive shells.
You may also wish to move some commands to your .login file; if
those commands only need to be done when a login session starts
up (checking for new mail, unread news and so on) it's better to
have them in the .login file.
Home | FAQ |