← Back to team overview

dx-packages team mailing list archive

[Bug 1102727] Re: Shortcut launcher make bash to not read .bashrc

 

>From the bash(1) man page, under the INVOCATION section:

       When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists.
       After  reading  that  file,  it  looks  for  ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.  The
       --noprofile option may be used when the shell is started to inhibit this behavior.

       When a login shell exits, bash reads and executes commands from
the file ~/.bash_logout, if it exists.

       When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist.  This may be inhibited by using  the
       --norc option.  The --rcfile file option will force bash to read and execute commands from file instead of /etc/bash.bashrc and ~/.bashrc.

Note that using the -c argument to bash means it's not an interactive
shell.

In short, according to the clear and explicit documentation on the bash
program, the .bashrc file will not be read under the circumstances in
which you're running it.

For additional discussion on how bash handles its startup files, see [1]
and especially [2].

If you want a command line to stick in your shortcut that works, try

  gnome-terminal -t "Python 2" -x bash -i -c python2

Since misunderstandings about how to use the bash shell is really not a
bug in Unity, I am reclosing this bug.

[1] http://askubuntu.com/questions/121073/why-bash-profile-is-not-getting-sourced-when-opening-a-terminal
[2] http://superuser.com/questions/183870/difference-between-bashrc-and-bash-profile

** Changed in: unity (Ubuntu)
       Status: New => Invalid

** Changed in: unity
       Status: New => Invalid

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to unity in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1102727

Title:
  Shortcut launcher make bash to not read .bashrc

Status in Unity:
  Invalid
Status in “unity” package in Ubuntu:
  Invalid

Bug description:
  I always had  (well, since around Karmic), a shortcut in my
  environment, so when I hit ctrl-alt-2, the following snippet would be
  executed (or very very similar, now adapted to the python 2/3
  duality):

    gnome-terminal -t "Python 2" -x bash -c python2

  As you can see, this opens a terminal (titled "Python 2") which
  executes a bash, that executes python2.

  Why not make gnome-terminal to execute directly python2? Because as
  I'm executing bash, it'd read the .bashrc file that sets the
  PYTHONSTARTUP and PYTHONPATH environment vars. It always worked as I
  just described.

  After I migrated to Quantal this stopped working. It still executes a
  gnome-terminal, ending in the execution of python2 inside it, but
  somehow, the .bashrc file is not executed, as the executed Python
  doesn't have correctly set sys.path.

  ProblemType: Bug
  DistroRelease: Ubuntu 12.10
  Package: unity 6.10.0-0ubuntu2
  ProcVersionSignature: Ubuntu 3.5.0-18.29-generic 3.5.7
  Uname: Linux 3.5.0-18-generic i686
  ApportVersion: 2.6.1-0ubuntu9
  Architecture: i386
  CompizPlugins: [core,bailer,detection,composite,opengl,decor,mousepoll,vpswitch,regex,animation,snap,expo,move,compiztoolbox,place,grid,imgpng,gnomecompat,wall,ezoom,workarounds,resize,fade,unitymtgrabhandles,scale,session,unityshell]
  Date: Mon Jan 21 23:29:59 2013
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2011-04-19 (644 days ago)
  InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Beta i386 (20110413)
  MarkForUpload: True
  SourcePackage: unity
  UpgradeStatus: Upgraded to quantal on 2012-10-22 (91 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/unity/+bug/1102727/+subscriptions