2010-02-22 49 views
0

我剛剛安裝了Ruby版本管理器(RVM),它工作正常,但它要求我將以下行放在我的/.bash_profile和〜/的.bashrc文件:線不會在我的Mac OSX上的.bash_profile和.bashrc上執行Snow Leopard

if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi 

看內容我看到以下內容:

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 

然而,當我開始新的終端窗口它不執行,我知道這是我設置我的默認紅寶石命令verion爲1.9,如果我手動執行該行,我會得到正確的版本:

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] 

任何想法如何解決這個問題?

感謝,

+0

檢查bash實際上是您的登錄shell。如果您在10.3之前創建了帳戶,則默認值爲tcsh,但可以使用chsh更改。 – mark4o 2010-02-22 06:21:18

回答

1

如果您有〜/ .profile,請嘗試向它添加以下行。

if [[-s /Users/tammam56/.rvm/scripts/rvm]];然後源/Users/tammam56/.rvm/scripts/rvm; fi

1

你有沒有證實,在.bashrc中其它命令和/或.bash_profile中得到適當的更新?

接下來,您應該確認終端是否將shell作爲登錄shell啓動(請參閱首選項 - >啓動)。

從bash的手冊頁:

當bash是作爲交互的登錄shell,或者用--login選項非跨 活躍的殼,它首先讀取並執行的COM如果該文件存在,則 將從文件/ etc/profile中管理。在讀取該文件的 之後,它按照該順序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile, ,並從第一個 存在且可讀的第一個中讀取和執行命令。當啓動 shell來禁止這種行爲時,可以使用--noprofile選項。

當一個不是登錄shell的交互式shell啓動時,如果該文件存在,bash 將讀取並執行〜/ .bashrc中的命令。這個 可以通過使用--norc選項來禁止。 --rcfile文件選項 將強制bash從文件而不是從 〜/ .bashrc讀取和執行命令。

+0

謝謝乙醚。尋找首選項>啓動:使用默認登錄shell(/ usr/bin/login)打開shell。 「你是否確認在.bashrc和/或.bash_profile中的其他命令得到正確更新?」是什麼意思? – Tam 2010-02-22 06:18:43

+0

@Tam:嘗試在您的.bashrc中運行'echo「運行.bashrc」',在您的.bash_profile文件中運行.bash_profile「'echo」 - 這些文件中的哪一個正在由新的終端執行? – Ether 2010-02-22 06:34:30

+0

謝謝乙醚。我嘗試過,但沒有得到任何顯示!我猜我的bash不會執行這兩個文件!我試過@UnderpantsGnome建議,它的工作!我還在底部添加了echo「執行.profile」,並看到輸出! – Tam 2010-02-22 07:19:09

0

我發現這個問題的最簡單的解決方案是將我的〜/ .bashrc文件中的所有內容(所以我的〜/ .bashrc現在是空的)移動到一個新的〜/ .bash_profile文件中。現在所有的Terminal.app選項卡都會自動運行〜/ .bash_profile中包含的所有行。這也適用於iTerm。

相關問題