Bash profile script order in screen

1

I have put an echo in three profile scripts that shows the file name so that I can see the order they run.

When I log in I see.

/etc/profile
/etc/profile.d/color-ls
~/.bashrc
/etc/bashrc
$ alias ls
alias ls='ls --ignore=*.pyc --color'

Yet when I start a screen session I see

~/.bashrc
/etc/bashrc
/etc/profile.d/color-ls
$ alias ls
alias ls='ls --color=tty'

The alias I've set up in ~/.bashrc is being overwritten by color-ls but only within screen, is there any round this annoying behaviour?

Stephen Paulger

Posted 2011-02-03T16:04:35.697

Reputation: 197

Answers

1

You should first read man bash (section 'INVOCATION') about when which file is actually used.

Your little 'trace' shows you that your ~/.bashrc always sources /etc/bashrc which is then calling color-ls ... or not, depending on code in /etc/bashrc as it seems.

So, two ways to solve the problem:

  • Check, under which circumstances /etc/bashrc decides to not source color-ls.
  • Setup your aliases after your ~/.bashrc processes /etc/bashrc.

akira

Posted 2011-02-03T16:04:35.697

Reputation: 52 754