2017-01-01 197 views
0

我確信我說錯了這個問題。所以,讓我解釋我的問題,並且有人可以爲我編輯它。如果已經初始化,通過shell重新初始化rbenv

我是一個在Jekyll上工作的新手,我安裝了rbenv。我不知道我從哪裏按照說明操作。我在我的.bash_profile中有下面這行:

if which rbenv > /dev/null; 
    then eval "$(rbenv init -)"; 
fi 
export PATH="$HOME/.rbenv/bin:$PATH" 

我不知道它在做什麼或者它是哪種語言。它是外殼還是bash或什麼?我是shell新手。我是一個Windows用戶。

當我用Google搜索,我在其他網站上看到,這是我所需要的:

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi 

因此,有人可以請解釋線線一下這個代碼是幹什麼的?

回答

1

這是bash代碼。由於它在.bash_profile中,每次加載登錄shell時都會執行它。

這裏的代碼註釋與解釋每個行所做的評論:

if which rbenv > /dev/null;   # Check if command rbenv is present  
    then eval "$(rbenv init -)";  # run the rbenv initialization scripts 
            # and evaluate the output 
fi 
export PATH="$HOME/.rbenv/bin:$PATH" # Update the PATH variable so the ruby commands 
            # are available 

第二個片段是等同於第一位的,但它不更新PATH變量。

+0

任何想法什麼PATH沒有更新在第二個片段?缺點是什麼? – qbektrix

+0

@qbektrix:PATH環境變量包含執行命令時搜索的目錄。顯然,在第一個例子中,ruby可執行文件的位置將被添加。在第二個例子中沒有發生。這可能是必要的或不取決於版本等... – user000001