I am trying to work out why .bashrc is not executing when I invoke ssh with the -t option and _does_ execute when I invoke ssh without the -t option.
ssh -qt remote-host which rsync # indicates ~/.bashrc has not executed on remote host ssh -q remote-host which rsync # indicates ~/.bashrc has executed on remote host ssh -qt remote-host tty # reports /dev/pts/1 ssh -q remote-host tty # reports not a tty ssh -qt remote-host echo '$-' # reports hBc ssh -q remote-host echo '$-' # reports hBc ssh -q remote-host ps -o "pid,ppid,args" -u xjsrs PID PPID COMMAND 8704 8702 sshd: [EMAIL PROTECTED] 8705 8704 ps -o pid,ppid,args -u xjsrs ssh -qt remote-host ps -o "pid,ppid,args" -u xjsrs PID PPID COMMAND 8733 8731 sshd: [EMAIL PROTECTED]/1 8734 8733 ps -o pid,ppid,args -u xjsrs According to echo '$-' neither shell is interactive.Yet, the one that is started without a pseudo terminal does have .bashrc executed. I added an debug statements to .bash_profile and it not getting executed in either case. There is no /etc/sshrc file and I don't have a ~/.ssh/rc file. The bash version is: GNU bash, version 3.00.15(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2004 Free Software Foundation, Inc. Upon reading the manual, the rule that bash seems to be using to decide that .bashrc should be executed if -t is not specified, is this one: 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. Is there any way I can have an ssh pseudo-tty and get bash to execute ~/.bashrc? jon seymour.