On Fri, 29 Sep 2017, L A Walsh wrote:

> Chet Ramey wrote:
> > 
> > This is all correct.  The change was introduced for a reason, and
> > accommodating a rare occurrence by backing it out would be non-
> > productive.
> >   
> ---
> The reason?:
> 
> Why does bash clear OLDPWD when a child script is started?
> 
> OLDPWD is exported and passed to any children, but bash apparently clears
> OLDPWD whenever a child script is started...
> 
> GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
> 
> Can bash be fixed to preserve the value of any OLDPWD in its initial
> environment, like it does with PWD?
> ---
> 
> I don't see a reason...
> I see a "want", but no real reason....
> 
> I'd agree it's a rare event to hit though, but when you do...
> 
> Requires console access, but changing /etc/profile to
> insert a bad OLDPWD to a known down network location might not be
> considered a trivial occurrence to someone stressed out and trying to log
> in and find out why everyone logging in is hanging...

I don't set up OLDPWD in /etc/profile.

I start the desktop environment from console using the "startx" command (I 
don't use graphical login screen) and the desktop environment inherits all 
variables that were there when I was working with bash on the console - 
including $OLDPWD.

A similar problem may happen if you start daemons using scripts in 
/etc/init.d/ (i.e. not using systemd) - in this case, the daemon also 
inherits all environment variables that were there when the admin was 
working with the shell, inclunding $OLDPWD.

Mikulas

Reply via email to