From owner-freebsd-ports@FreeBSD.ORG Tue Sep 23 18:45:10 2008 Return-Path: Delivered-To: freebsd-ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 044F01065670; Tue, 23 Sep 2008 18:45:10 +0000 (UTC) (envelope-from jrhett@netconsonance.com) Received: from mail.netconsonance.com (mail.netconsonance.com [198.207.204.4]) by mx1.freebsd.org (Postfix) with ESMTP id DC5D98FC2E; Tue, 23 Sep 2008 18:45:09 +0000 (UTC) (envelope-from jrhett@netconsonance.com) Received: from [172.16.12.8] (covad-jrhett.meer.net [209.157.140.144]) (authenticated bits=0) by mail.netconsonance.com (8.14.1/8.14.1) with ESMTP id m8NIj7ZS057074; Tue, 23 Sep 2008 11:45:07 -0700 (PDT) (envelope-from jrhett@netconsonance.com) X-Virus-Scanned: amavisd-new at netconsonance.com X-Spam-Flag: NO X-Spam-Score: -2.398 X-Spam-Level: X-Spam-Status: No, score=-2.398 tagged_above=-999 required=3.5 tests=[ALL_TRUSTED=-1.44, AWL=-0.958] Message-Id: <47824C4F-78DE-41EB-A8C4-D0F7282803D0@netconsonance.com> From: Jo Rhett To: Jeremy Chadwick In-Reply-To: <20080922002229.GA12314@icarus.home.lan> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v928.1) Date: Tue, 23 Sep 2008 11:45:07 -0700 References: <20080921215255.GA9622@icarus.home.lan> <34CFC7BB-E7D2-4B34-9D85-70F4C8E718E2@netconsonance.com> <20080922002229.GA12314@icarus.home.lan> X-Mailer: Apple Mail (2.928.1) Cc: freebsd-ports@FreeBSD.org Subject: Re: Incorrect commandline history with bash X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2008 18:45:10 -0000 On Sep 21, 2008, at 5:22 PM, Jeremy Chadwick wrote: > Everyone lecturing me needs to read, slowly, the INVOCATION part of > the > bash man page. The method I described above should become apparent > afterwards. I'm sorry if you feel I'm lecturing you -- I'm not. I was just trying to note that what you said seems to be backwards in my experience. Moreover, the section of the man page you quoted backed up my analysis: > When bash is invoked as an interactive login shell, or as a non- > interactive shell with the --login option, it > first reads and executes commands from the file /etc/profile, > if that file exists. After reading that file, it > looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, > in that order, and reads and executes commands from > the first one that exists and is readable. The --noprofile > option may be used when the shell is started to > inhibit this behavior. It does not read ~/.bashrc. I have tested this and confirmed its behavior. Now, I will go farther and mention the obvious: > When an interactive shell that is not a login shell is > started, bash reads and executes commands from > ~/.bashrc, if that file exists. However, this file is only read when and if you type "bash" after you are already logged into the system in question. In general, because of the way bash works, it would suggest that putting variables you always want set in the .bashrc is correct, and sourcing it from .bash_profile is also correct. Variables (like terminal settings) which are only applied during login should be set in .bash_profile. Sourcing .bash_profile from .bashrc means you'd need some heft if/then code to avoid playing havoc with your terminal settings. IMHO of course. -- Jo Rhett Net Consonance : consonant endings by net philanthropy, open source and other randomness