2012-05-20 50 views
-1

我發現在我的linux實例的.bashrc中有幾行代碼。可以向我解釋這一行代碼意味着什麼。我沒有shell編程的背景。這個shell腳本代碼行是什麼意思

if [ -f ~/.bashrc ]; then 
     . ~/.bashrc 
fi 

在此先感謝您的幫助

+2

如果該代碼位於〜/ .bashrc中,請將其刪除:bash已經在讀取您的bashrc文件。如果它在〜/ .profile或〜/ .bash_profile中,請保留它,這很好。 –

回答

7

[ -f ~/.bashrc]tests wheather文件.bashrc在當前主目錄中。如果它存在,那麼它是來源。

這意味着它在當前shell中執行,而不是啓動一個新的shell。因此,腳本中的所有更改都會直接影響當前shell,而無需導出變量。

+0

。 〜/ .bashrc你確定這會運行bashrc文件嗎? 〜/ .bashrc將完成他的工作。 – mawia

+1

只需執行'〜/ .bashrc'在新shell中執行該文件,則對環境變量所做的更改不會影響舊shell。 '。 ./。bashrc'在當前shell中執行腳本並用於設置環境。如果你想嘗試一下,把'echo something'放在你的.bashrc文件中,並啓動一個新的shell。 – mata

+0

謝謝!明白了你的意思!雖然在兩者之間你能解釋你的建議嗎? – mawia

0

那麼,它是shell腳本編程語言中的if條件語句。 if [-f ~/.bashrc]意味着如果您的主目錄中有一個名爲.bashrc的文件,那麼當您登錄您的linux系統時,./bashrc文件將由init進程自動運行。它用於爲您自動配置系統環境。