2015-07-03 140 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。因此,当到达程序结束时,它意识到如果提供了问题中提到的错误,还会有更多的错误。 –