• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[10.7 Lion] bashrc wird nicht geladen

peddy76

Gala
Registriert
31.10.09
Beiträge
48
Hallo,

seit dem ich Lion drauf habe wird meine .bashrc unter Home nicht geladen :(

Ich muss sie immer mit source .bashrc von Hand laden. Wie kann ich das wieder automatisch machen lassen?
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Ich nutze immer nur eine .bash_profile statt .bashrc, das funktioniert seit Tiger und auch unter Lion einwandfrei.

Wurde die .bashrc vor Lion denn wirklich ausgeführt? Laut dieser Seite:
http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html
ist das Terminal von OS X eine Ausnahme, die immer .bash_profile statt .bashrc ausführt, auch wenn nur ein neues Terminal-Fenster geöffnet wird.


(P.S.: Es heißt zwar z.B. „Seit dem Zeitpunkt xy“, aber „Seitdem etwas passiert ist“. Das Leerzeichen macht einen großen Unterschied ;))
 
  • Like
Reaktionen: ImperatoR

DukeNuke2

Wagnerapfel
Registriert
17.01.06
Beiträge
1.583
was ist die ausgabe von "echo $0" direkt nach dem start des terminals?

in der bash manpage gibt es auch noch einige nützliche infos:

Code:
INVOCATION
       A  login shell is one whose first character of argument zero is a -, or
       one started with the --login option.

       An interactive shell is one started without  non-option  arguments  and
       without the -c option whose standard input and error are both connected
       to terminals (as determined by isatty(3)), or one started with  the  -i
       option.   PS1 is set and $- includes i if bash is interactive, allowing
       a shell script or a startup file to test this state.

       The following paragraphs describe how bash executes its startup  files.
       If  any  of  the files exist but cannot be read, bash reports an error.
       Tildes are expanded in file names as described below under Tilde Expan-
       sion in the EXPANSION section.

       When  bash is invoked as an interactive login shell, or as a non-inter-
       active shell with the --login option, it first reads and executes  com-
       mands  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 ~/.bashrc, if that file exists.  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
       ~/.bashrc.

       When bash is started non-interactively, to  run  a  shell  script,  for
       example, it looks for the variable BASH_ENV in the environment, expands
       its value if it appears there, and uses the expanded value as the  name
       of  a  file to read and execute.  Bash behaves as if the following com-
       mand were executed:
              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
       but the value of the PATH variable is not used to search for  the  file
       name.
 
  • Like
Reaktionen: ImperatoR

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
Ich nutze immer nur eine .bash_profile statt .bashrc, das funktioniert seit Tiger und auch unter Lion einwandfrei.

Ja, weil bash_profile die höhere Priorität hat. Wenn also bei peddy76 eine leere bash_profile zu finden ist, wird bashrc ignoriert.
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
Verzeih … hier die richtige Antwort:

According to the bash man page, .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.[h=3]What is a login or non-login shell?[/h]When you login (type username and password) via console, either sitting at the machine, or remotely via ssh: .bash_profile is executed to configure your shell before the initial command prompt.
But, if you’ve already logged into your machine and open a new terminal window (xterm) inside Gnome or KDE, then .bashrc is executed before the window command prompt. .bashrc is also run when you start a new bash instance by typing /bin/bash in a terminal.

Ich habe es verwechselt mit .profile / .bash_profile, dort hatte ich mal die Problematik wie in #4.
 

peddy76

Gala
Registriert
31.10.09
Beiträge
48
Ich nutze immer nur eine .bash_profile statt .bashrc, das funktioniert seit Tiger und auch unter Lion einwandfrei.

Wurde die .bashrc vor Lion denn wirklich ausgeführt? Laut dieser Seite:
http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html
ist das Terminal von OS X eine Ausnahme, die immer .bash_profile statt .bashrc ausführt, auch wenn nur ein neues Terminal-Fenster geöffnet wird.


(P.S.: Es heißt zwar z.B. „Seit dem Zeitpunkt xy“, aber „Seitdem etwas passiert ist“. Das Leerzeichen macht einen großen Unterschied ;))

Seitdem ich (war das jetzt richtig so ;)) die .bashrc in .bash_profile umbenannt habe, funktioniert es wie gewünscht. Ich bin jetzt wirklich verunsichert, ob das wie behauptet unter 10.6 ging. Da ich meinen iMac äußerst selten neu starte, und ich das Terminal vergleichsweise selten benutze, kann es durchaus sein, dass ich mich getäuscht habe....

Danke noch mal für deine Hilfe.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Im Terminal.app von OS X hat man ein etwas anderes Verhalten als das, welches in den gängigen Terminal-Apps für KDE oder GNOME üblich ist. Jedes neue Fenster und jeder neue Tab erzeugt jeweils eine eigene neue Sitzung, die jeweils erste dort drin gestartete Shell-Ebene ist eine interaktive Login-Shell. (Im xterm unter X11 ist das dagegen nicht der Fall.)