GNU bug report logs - #29337
Bash reads system-wide bashrc unconditionally.

Previous Next

Package: guix;

Reported by: Roel Janssen <roel <at> gnu.org>

Date: Fri, 17 Nov 2017 12:17:02 UTC

Severity: normal

Done: Roel Janssen <roel <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 29337 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Roel Janssen <roel <at> gnu.org>
Cc: 29337 <at> debbugs.gnu.org
Subject: Re: bug#29337: Bash reads system-wide bashrc unconditionally.
Date: Fri, 17 Nov 2017 22:04:52 +0100
Hi,

Roel Janssen <roel <at> gnu.org> skribis:

> On CentOS 7, the following happens (yes, I added the echo-statement to
> /etc/bashrc on CentOS as well):
> $ env - bash --init-file <(echo "echo \"Goodbye, world\"") -i
> Goodbye, world
>
> On GuixSD:
> $ env - bash --init-file <(echo "echo \"Goodbye, world\"") -i
> Hello, world
> Goodbye, world
>
> Where does this difference come from?  And could we make its behavior
> similar to CentOS 7, and more importantly, to the description in the
> manpage?

By default GuixSD’s /etc/profile (sourced by interactive shells) does
this:

--8<---------------cut here---------------start------------->8---
if [ -n "$BASH_VERSION" -a -f /etc/bashrc ]
then
  # Load Bash-specific initialization code.
  . /etc/bashrc
fi
--8<---------------cut here---------------end--------------->8---

It comes from commit 1d167b6e3779bcc1666b5c7d5ee802170c7023b6, which was
about loading the Bash completion code.

Looking at the manual (info "(bash) Bash Startup Files"), I think that
/etc/bashrc is ignored by default.  Thus it’s up to users/distros to
decide what to do with it, IIUC.

Thoughts?

Ludo’.




This bug report was last modified 7 years and 166 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.