Wow, that's what I call deep knowledge! Thank you for explaining it, Roberth.
Best, Ezequiel On Thu, Jan 6, 2011 at 11:58 PM, roberth <[email protected]> wrote: > On Thu, 6 Jan 2011 23:35:32 +0100 > Ezequiel Garzsn <[email protected]> wrote: > >> On Thu, Jan 6, 2011 at 11:18 PM, xSAPPYx <[email protected]> wrote: >> > I think ksh(1) man page has the info, or maybe it is intro(8) >> > >> > Try this: >> > echo "export ENV=$HOME/.kshrc" >> ~/.profile >> > echo ". /etc/ksh.kshrc" >> ~/.kshrc >> >> Yes, in that case the new PS1 value is set by ~/.kshrc, which >> overrides whatever I did in .profile, but that still leaves me >> wondering as to why this happens: what other file or setting is being >> read that changes PS1 back to its default setting? >> > > bin/ksh/main.c: > safe_prompt = ksheuid ? "$ " : "# "; > { > struct tbl *vp = global("PS1"); > > /* Set PS1 if it isn't set, or we are root and prompt doesn't > * contain a # or \$ (only in ksh mode). > */ > if (!(vp->flag & ISSET) || > (!ksheuid && !strchr(str_val(vp), '#') && > (Flag(FSH) || !strstr(str_val(vp), "\\$")))) > /* setstr can't fail here */ > setstr(vp, safe_prompt, KSH_RETURN_ERROR); > }

