[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: interactive shell is incorrect
From: |
David Thompson |
Subject: |
RE: interactive shell is incorrect |
Date: |
Thu, 5 Jun 2003 08:33:20 -0700 |
> From: Paul D. Smith [mailto:address@hidden
Thanks for your quick response!
> dt> Could someone explain this behavior?
> Maybe. Do you have either the $ENV or $BASH_ENV variables
> set? If so that probably explains the behavior. See the
> bash man page for more information.
BASH_ENV is no, but ENV is yes.
$ echo $BASE_ENV
$ echo $ENV
/home/davidt/.kshrc
My login shell is ksh93, so naturally I'm using ENV
with ksh, not bash.
I still think there is a bug. From my original email, note
how this command,
50 $ make -s -f Makefile.b
51 TOPDIR = /home/davidt/tmp/foo
is correct, but this recursive make shows incorrect output,
47 $ make -s -f Makefile.a
48 Hello bashrc
49 TOPDIR = Hello bashrc /home/davidt/tmp/foo
I don't understand what explains *that* difference.
Can you reproduce that behavior? Here are the Makefiles
from the original email,
12 $ cat Makefile.a
13 all:
14 gmake -f Makefile.b SHELL=/usr/local/bin/bash
Line 14 should say 'make' not 'gmake', but that's not the
problem.
15 $ cat Makefile.b
16 TOPDIR := $(shell /bin/pwd)
17 all:
18 echo TOPDIR = $(TOPDIR)
Btw, even when I unset ENV, I still get incorrect behavior
from the recursive make invocation. The obvious workaround
is to gag the ~/.bashrc into silence, since its output is
what seems to pollute everything. But I contend that a bug
exists (somewhere) because bash thinks it is invoked as an
interactive shell, even with BASH_ENV and ENV unset, so bash
sources ~/.bashrc. Clearly bash is not supposed to be doing
that. I also contend the bug is with make since the behavior
is only seen in recursive invocations of make.
Can you agree?
Regards,
--
David Thompson
Foster City, CA