2015-07-03 31 views
0

這裏意外結束是當我開始一個新的終端,其出現在屏幕的頂部的錯誤:.bashrc中錯誤的bash:/home/jason/.bashrc:線115:語法錯誤:文件

bash: /home/jason/.bashrc: line 115: syntax error: unexpected end of file

我去說文件,並試圖註釋掉以下行(此代碼的最後一行是線115)的代碼,解決了一個很草率的方式問題:

#if ! shopt -oq posix; then 
    #if [ -f /usr/share/bash-completion/bash_completion ]; then 
    #. /usr/share/bash-completion/bash_completion 
    #elif [ -f /etc/bash_completion ]; then 
    #. /etc/bash_completion 
    #fi 
#fi 

我不熟悉與此代碼,並會感謝解決方案,甚至建議如何更好地格式化這個問題。

+1

這些行中的任何一行是115​​行嗎?很難說實際的問題是什麼,因爲它可能在腳本的其他地方。 – chepner

+0

也許你可以給出一個小小的背景,在你評論的內容之前和之後幾行,並顯示你如何評論它。這個錯誤可能意味着在文件結束之前沒有關閉一個塊(*例如*,沒有'fi'的'if')。您顯示的代碼段似乎是完整的「if」塊的正確語法。 – lurker

+1

感謝您的意見,我會相應地重新提交。 –

回答

1

原來,當我進入我的.bash_aliases文件,並一塊一塊地評論我的別名時,下面的別名是罪魁禍首。

alias fi='firefox' 

的原因,這是錯誤的,因爲網絡是如果語句的結束,而這個走進bash腳本的方式,它被理解爲結束。如果,而不是期望的別名的名稱。導致錯誤。

她是固定線路。

alias fir='firefox' 

故事的道德是不要使用fi作爲別名,因爲它被讀爲bash腳本中的if語句的結尾。

+0

//,爲什麼.bash_aliases文件中的錯誤會作爲.bashrc *的*第115行中的錯誤出現?我印象深刻,你以某種方式設法找到了這個,但仍然...哇。 –

+0

它在115行中表現爲錯誤的原因是因爲它在引用.bash_alias文件的bash文件的早期部分添加了一個額外的fi。因此,當到達程序結束時,它意識到如果提供了問題中提到的錯誤,還會有更多的錯誤。 –