Date: Wed, 18 Dec 2013 11:47:23 -0600 From: Graham Allan <allan@physics.umn.edu> To: freebsd-questions@freebsd.org Subject: Re: System Wide Bash Login Script Message-ID: <52B1DFAB.8030300@physics.umn.edu> In-Reply-To: <BLU0-SMTP372E34C3B74A12DF26B7EC7B3DA0@phx.gbl> References: <BLU0-SMTP311BA69BBE6C3820F674C80B3DB0@phx.gbl> <A2F77DDA-BD32-4CBF-BA56-9DF2BF43DEE8@gmail.com> <BLU0-SMTP372E34C3B74A12DF26B7EC7B3DA0@phx.gbl>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12/18/2013 11:26 AM, Drew Tomlinson wrote: > On 12/17/2013 3:56 PM, Matthew Pherigo wrote: >> Hi Drew! >> >> Believe it or not, systemwide bashrc sourcing isn't actually built-in >> to bash by default (though in my opinion, it should be). This behavior >> of global config sourcing actually comes from default /etc/profile >> files that come with Linux distros. Since FreeBSD uses csh/tcsh by >> default, of course, it comes with no such thing. However, it's fairly >> easy to add. The following snippet of code goes into your /etc/profile: >> >> if [ "$PS1" ]; then >> if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then >> if [ -f /usr/local/etc/bash.bashrc ]; then >> fi >> fi >> fi >> >> If the shell is interactive, is a bash shell, and the file >> /usr/local/etc/bash.bashrc exists, it sources it. >> >> This is the snippet of code I use; I think it was originally from Debian. >> --Matt > > Hi Matt, > > Thanks for your reply. The snippet of code you provided does work. > However, I remain confused. > > I have a box I built a couple of years ago which is currently at 9.1. I > don't recall how I got bash login scripts working on that one but it > appears that I put my commands in /usr/local/etc/bashrc. The > /etc/profile on that box is the default where everything is commented > out. So no code is needed on that box to get the commands in > /usr/local/etc/bashrc to run when logging in. > > I'm just trying to understand why the /etc/profile trick is required on > this new box I built but not the old? There's a compile-time option in config-top.h ("#define SYS_BASHRC ..."), which nobody seems to use. Back when we used to build our own bash from tarballs for long-gone proprietary unix systems, I always used to set these options. It was a huge PITA that the prebuilt packages on linux don't have this set and for a while we built our own custom version with the feature re-enabled but eventually it began to feel too much like swimming upstream. I guess we gave up this issue on FreeBSD as well! I still don't understand why bash people don't see the value in this feature - having to insert that snippet into everybody's personal bashrc is just stupid IMO... Graham -- ------------------------------------------------------------------------- Graham Allan - allan@physics.umn.edu - (612) 624-5040 School of Physics and Astronomy - University of Minnesota -------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52B1DFAB.8030300>