Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Sep 2012 00:52:29 -0600
From:      Gary Aitken <freebsd@dreamchaser.org>
To:        Polytropon <freebsd@edvax.de>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: trouble getting .shrc to take
Message-ID:  <5063F7AD.6000705@dreamchaser.org>
In-Reply-To: <20120927072227.9f57fff0.freebsd@edvax.de>
References:  <5063DF4B.1060904@dreamchaser.org> <20120927072227.9f57fff0.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 09/26/12 23:22, Polytropon wrote:
> On Wed, 26 Sep 2012 23:08:27 -0600, Gary Aitken wrote:
>> Having set my shell to either sh or bash,
>> I can't seem to get .shrc to take.
>> If I have a .shrc that looks like:
>>
>>    PROMPT_DIRTRIM=3;   export PROMPT_DIRTRIM
>>    PS1=\\w$ ; export PS1
>>
>> PS1 is not defined when I log in, and the prompt is set to the default instead.
>>
>> If I do
>>    ./.shrc
>> nothing seems to change;
>> although executing the above commands from the shell itself works.
>>
>> What am I missing?
> 
> As far as I see from "man sh", the system's shell does not
> support PROMPT_DIRTRIM, so it's a bash feature.

Didn't realize that, thanks.
And apparently I lied; using sh does cause .shrc to be used,
but not when bash is used.

> According to "man bash", its initialisation file is called
> ~/.bashrc. For example, if I put
> 
> 	export PS1="\u@\h:\w\$ "
> 
> into ~/.bashrc and execute bash, I get a standard prompt. So
> it should only be a matter of the correct file name.


> Note that bash has several files it can process at startup
> time, such as .bash_login, .profile and .bashrc. Their order
> is described in the manual, e. g.
> 
> 	When  bash is invoked as an interactive login shell, or as a non-inter-
> 	active shell with the --login option, it first reads and executes  com-
> 	mands  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.
> 
> 	When an interactive shell that is not a login shell  is  started,  bash
> 	reads  and executes commands from ~/.bashrc, if that file exists.  This
> 	may be inhibited by using the --norc option.  The --rcfile file  option
> 	will  force  bash  to  read  and  execute commands from file instead of
> 	~/.bashrc.
> 
> You can find more information in the "INVOCATION" section of the
> manual at "man bash". There are files for per-user configuration
> as well as system-wide files.

I thought .shrc was used by bash as well, 
but looking further I see it only uses .shrc, via ENV, 
that when it is invoked as sh;
which it's not when it's the startup shell and /bin/sh isn't a link to it.

Thanks.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5063F7AD.6000705>