Jon Seymour wrote:

>     Bash attempts to determine when it is being run by the remote shell
> daemon, usually rshd.  If bash determines it is being run by rshd, it
> reads  and  executes
>     commands  from  ~/.bashrc,  if that file exists and is readable.  It
> will not do this if invoked as sh.  The --norc option may be used to inhibit
> this behavior, and
>     the --rcfile option may be used to force another file to be read, but
> rshd does not generally invoke the shell with those options or allow them to
> be specified.
> 
> However, when I use the ssh -t option, it would seem that allocation of a
> pseudo-tty is causing bash to assume that it is not being invoked by a
> remote shell daemon.

Correct.  One of the criteria bash uses to decide whether it's being
invoked by rshd or sshd is that its stdin is a socket.  Allocating a
pseudo-tty makes that false.

You can force bash to source .bashrc when it finds the various ssh
variables in its startup environment by defining SSH_SOURCE_BASHRC
in config-top.h and rebuilding bash.  That will cause .bashrc to be
sourced more times than it should, but it will catch the cases you
are interested in.

Chet

> 
> Is there any way I can have an ssh pseudo-tty and get bash to execute
> ~/.bashrc?
> 
> jon seymour.


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer

Chet Ramey, ITS, CWRU    [EMAIL PROTECTED]    http://cnswww.cns.cwru.edu/~chet/


Reply via email to