Zeile ausführen in .bash_profile und .bashrc auf meinem Mac OSX Snow Leopard nicht
-
22-09-2019 - |
Frage
Ich habe gerade installiert Ruby-Version Manager (RVM), die feine Arbeit, aber es hat mich gebeten, die folgende Zeile in meinem /.bash_profile zu setzen und ~ / .bashrc Dateien:
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
auf den Inhalt schauen sehe ich die folgende:
tammam56$ cat /.bash_profile
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
tammam56$ cat ~/.bashrc
export PATH=/usr/local/bin:$PATH
export MANPATH=/usr/local/man:$MANPATH
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Allerdings, wenn ich neue Terminal-Fenster startet es nicht den Befehl ich das weiß, wie ich meine Standard-Ruby-verion auf 1,9 eingestellt, und wenn ich die Zeile manuell ausführen bekomme ich auf die richtige Version:
tammam56$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
Macintosh-37:~ tammam56$ if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Macintosh-37:~ tammam56$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.2.0]
Alle Ideen, wie kann ich das Problem beheben?
Danke,
Tam
Lösung
Wenn Sie eine ~ / .profile versuchen Sie die folgende Zeile ihm hinzufügen.
if [[es /Users/tammam56/.rvm/scripts/rvm]]; dann /Users/tammam56/.rvm/scripts/rvm beziehen; fi
Andere Tipps
Haben Sie, dass andere Befehle in Bashrc bestätigt und / oder Bash_profile korrekt aktualisiert werden?
Als nächstes sollten Sie überprüfen, ob die Shell-Terminal als Login-Shell startet oder nicht (siehe unter Einstellungen -> Startup).
Von der bash man-Seite:
Wenn bash als interaktive Login-Shell aufgerufen oder als nicht-inter- aktive Schale mit der --login Option, es zuerst liest und führt Kom- mands aus der Datei / etc / profile, ob die Datei existiert. Nach dem Lesen die Datei, sucht es nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile, in dieser Reihenfolge, und liest und führt Befehle von der ersten, dass existiert und lesbar ist. Die --noprofile Option kann verwendet werden, wenn die Shell ist der Autor dieses Verhalten zu verhindern.
Wenn eine interaktive Shell, die kein Login-Shell ist gestartet wird, bash wenn liest und führt Befehle aus ~ / .bashrc, dass Datei vorhanden ist. Diese kann unter Verwendung der Option --norc gehemmt werden. Die --rcfile Datei Option zwingt Bash Befehle aus der Datei zu lesen und auszuführen statt ~ / .Bashrc.
Ich fand, dass die einfachste Lösung für dieses Problem war der gesamte Inhalt von meiner ~ / .bashrc-Datei zu verschieben (so meine ~ / .bashrc jetzt leer ist) auf eine neue ~ / .bash_profile-Datei. Nun sind alle Terminal.app Registerkarten automatisch alle Zeilen in ~ / .bash_profile enthalten laufen. Dies gilt auch für iTerm.