Immer wenn ich mit Cmd+ eine neue Registerkarte in Terminal Töffne, wird bash im selben Verzeichnis wie die vorherige Registerkarte geöffnet. Dies funktioniert gut, wenn ich im ~
Verzeichnis bin , aber wenn ich irgendwo anders bin, wird beim Laden ein Fehler angezeigt.bashrc
Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$
Es sieht so aus, als würde .bashrc
es über einen relativen und nicht über einen absoluten Pfad geladen, denn wenn ich das tue source ~/.bashrc
, funktioniert alles reibungslos.
Ich denke, dies ist ein Problem im Zusammenhang mit OS X Lion, da ich vor dem Upgrade von Snow Leopard nicht das gleiche Problem hatte. Aber das könnte daran liegen, dass das Terminal immer um öffnet ~
. Ich erinnere mich nicht, ob es versucht hat, dasselbe Verzeichnis zu öffnen.
Die Frage bleibt jedoch dieselbe: Wie kann ich das Terminal ~/.bashrc
über einen absoluten Pfad und nicht relativ laden ?
Antworten:
Terminal öffnet eine Login-Shell. Dies bedeutet,
~/.bash_profile
wird ausgeführt,~/.bashrc
nicht.Die Lösung auf den meisten Systemen ist es , „require“ die
~/.bashrc
in der~/.bash_profile
: gerade diese Schnipsel setzen in Ihrem~/.bash_profile
:quelle
[[ -s /file/path ]]
tut? Es ist nicht einfach, bei Google nach einer Erklärung zu suchen.man bash
: -s file True, wenn die Datei vorhanden ist und eine Größe größer als Null hat.man bash
) spricht darüber und erklärt es, Kapitel INVOCATION (suchen Sie einfachINVOCATION
nach dem Aufrufman bash
durch Eingabe/INVOCATION
)Das Umbenennen
.bashrc
in.profile
(oder das weiche Verknüpfen des letzteren mit dem ersteren) sollte ebenfalls den Trick tun. Siehe hier .quelle
cd && ln -s ./.bashrc ./.profile
Symlinks verknüpfen: Beachten Sie, dass Symlinks hinsichtlich des Dateipfads empfindlich sind. Ich glaube, dass die Verwendung der obigen Syntax funktioniert, aber um sicherzugehen, dass Sie auf jeden Fall absolute Pfade verwenden können..profile
haben, brechen Sie regelmäßigsh
.Ich habe folgendes in meinem
~/.bash_profile
:Wenn ich
.bashrc
stattdessen hätte~/.bashrc
, würde ich das gleiche Symptom sehen, das Sie sehen.quelle