On 2006-07-11 15:33, Alex Zbyslaw <[EMAIL PROTECTED]> 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 % _______________________________________________ firstname.lastname@example.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"