aterm -e screen does not source .bashrc
Giorgos Keramidas
keramida at ceid.upatras.gr
Tue Jul 11 14:48:09 UTC 2006
On 2006-07-11 15:33, Alex Zbyslaw <xfb52 at dial.pipex.com> wrote:
>Giorgos Keramidas wrote:
>> By default, xterm, rxvt, aterm and various other terminal emulators
>> start non-login shells. This means that .profile is not sourced by the
>> shell spawned by the terminal. You can enable a `login shell' inside
>> one of these terminal emulators with the -ls option:
>>
>> aterm -ls -e screen &
>
> But a better option, IMHO, is to correctly separate the functionality in
> your .profile from that in some other (e.g. .shinit) file. One is for
> only stuff that happens at login, one for stuff that happens regardless.
Yes, of course :-)
> from man sh
>
> When first starting, the shell inspects argument 0, and if
> it begins with a dash (-), the shell is also considered a
> login shell. This is normally done automatically by the
> system when the user first logs in. A login shell first
> reads commands from the files /etc/profile and then
> .profile if they exist. If the environment variable ENV is
> set on entry to a shell, or is set in the .profile of a
> login shell, the shell then reads commands from the file
> named in ENV. Therefore, a user should place commands that
> are to be executed only at login time in the .profile file,
> and commands that are executed for every shell inside the
> ENV file. The user can set the ENV variable to some file
> by placing the following line in the file .profile in the
> home directory, substituting for .shinit the filename
> desired:
>
> ENV=$HOME/.shinit; export ENV
>
> IMHO, this one one of the ways that csh was miles ahead of sh as a login
> (as opposed to a scripting) shell. These days, of course, a modern shell
> like bash has many of the best features of both, and even sh can
> (finally) do command line editing.
Agreed. My current .bash_profile is basically a minimal wrapper around
.bashrc these days:
% gothmog % cat -n .bash_profile
% 1 # Startup file for login instances of the bash(1) shell.
% 2 # $RCS: giorgos/.bash_profile,v 1.10 2005/07/10 21:10:39 giorgos Exp $
% 3
% 4 # First of all, run a .bashrc file if it exists.
% 5 test -f ~/.bashrc && . ~/.bashrc
% 6
% 7 # The following section should be pretty minimal, if present at all.
% 8 mesg y >/dev/null 2>&1
% 9 /usr/bin/true
% gothmog %
More information about the freebsd-questions
mailing list