2006. July 26. 16:35, James Strandboge: > On Wed, 2006-07-26 at 15:42 +0200, LeVA wrote: > > 2006. July 26. 14:32, James Strandboge: > > > On Tue, 2006-07-25 at 22:59 +0200, LeVA wrote: > > > Are you *sure* that the control characters have been entered > > > correctly? It is not '^' followed by '['. It must be the single > > > charactor '^['. > > > > Now that your pointing this out for me :) indeed I was using a '^' > > char followed by a '['. > > But how can I enter that control character? What is the keycombo > > for it? > > Check my previous email. I don't know how to do it in vi > (unfortunately), but it can be done in emacs. > > ... > > > When I'm using a login shell, everything is working. > > But when I'm using a non-login shell (in my case Konsole from KDE), > > then everything gets still sourced from my ~/.profile (so my PS1 is > > 'whatever...') *BUT* the aliases are not working. > > It needs to be a login shell, or have ENV set. From the man page: > If the basename of the name the shell is called with (i.e., > argv[0]) starts with - or if the -l option is used, the shell is > assumed to be a login shell and the shell reads and executes the > contents of /etc/pro‐ file and $HOME/.profile if they exist and are > readable. > > If the ENV parameter is set when the shell starts (or, in > the case of login shells, after any profiles are processed), its > value is subjected to parameter, command, arithmetic and tilde > substitution and the resulting file (if any) is read and executed. > If ENV parameter is not set (and not null) and pdksh was compiled > with the DEFAULT_ENV macro defined, the file named in that macro is > included (after the above men‐ tioned substitutions have been > performed). > > So either set konsole up to launch ksh as a login shell, or set ENV > somewhere. You can test this with: > > $ ENV="~/.profile" konsole > > Or launch konsole, and do: > $ ksh -l The .profile is always gets parsed (both in a login and a non-login shell). I can only set the ENV parameter in the .profile, because it is the first and only file which is used by pdksh when it starts. But setting the ENV parameter in the .profile file doesn't make any sense if I have a file (the .profile) which have already been parsed by pdksh. I can put all my variables and aliases etc... in to my .profile, and no need for another startup file. But, I can see the ENV variable's meaning in another context, please read along. When I start pdksh in a non-login shell, the .profile gets parsed, and the PATH and every other env.var. gets set. Only the aliases gets ignored, but why? Pdksh parses the alias commands too, why don't they appear in a non-login shell, and why do they appear in a login shell? The .profile file is the same...
If I add the ENV="~/.kshrc" line to my .profile and my ~/.kshrc contains my aliases, then I still can not see my aliases... And that is what I've expected, beacuse only by sourcing another file from an already parsed file doesn't make it working... If I start konsole with 'ENV="~/.kshrc" konsole' then my aliases are working. So this is solution no.1. > If you setup .profile the way I suggested (eg, by setting ENV to > be .kshrc), konsole works properly. Unfortunatelly not. The solution which is working is the konsole starting method that you've suggested. The man says that "if the ENV parameter is set when the shell starts" :) This is funny because I can set the ENV parameter in a shell, and I can not set it before running the shell :) Something must be running already (eg. KDE) to be able to set up the variable. I can put a file which contains 'ENV="~/.kshrc"' to my ~/.kde/env/ and that gets sourced by kde startup, so the ENV parameter will be set when I start konsole. Wait a minute... that is what I'm gonna do! :) Daniel -- LeVA