On Fri, Nov 01, 2002 at 12:58:24PM -0500, Stone, Timothy wrote:

> I will close by saying I'm developing a hypothesis for my best practice:
> 
> ~/.bashrc should contain user aliases, functions and variables for
> the local system that builds on /etc/bashrc ~/.bash_profile should
> contain user aliases, functions and variables for remote sessions
> (needing a login shell); these environment settings should build on
> the ~/.bashrc settings or reset them based on the needs of the
> remote session.
> 
> Comments and thoughts welcome.

Just my thoughts on how I handle this, since you already seem to see
the origins of the problem. I like having things I need no matter what
in .bashrc, like aliases, etc. .bash_profile invokes .bashrc:

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

The potential downside is you might have a lot of junk that is totally
unnecessary for non-interactive shells then in .bashrc. So I do:

if [ "$PS1" ]; then
  . ~/.aliases
  . ~/.functions

 [...]

fi

This skips this stuff for non-interactive shells, but is there for
interactive shells too. This way I don't worry about login vs
non-login, or interactive vs non-interactive.

As to remote logins with ssh, etc., I use something in the
environment, like:

SSH_CLIENT=$'192.168.10.3 34655 22'
SSH_TTY=/dev/pts/3

if [ -n "$SSH_CLIENT" ]; then 
# if a ssh connection

     if echo $SSH_CLIENT |grep "192\.168\.10"; then
     # ssh from LAN (hopefully!)


[...]

as a test whether it is remote or not. 

-- 
Hal Burgiss
 



-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@;redhat.com?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to