.bashrc "syntax error: unexpected end of file"

分享于 

6分钟阅读

ubuntu

 

问题:

Kubuntu 18.04.4

运行正常几年了。

突然出现"bash: .bashrc: line 118: syntax error: unexpected end of file

我没有对这个文件进行修改,我查找了缺少的结束语句,缺少引号等等,但是找不到。

我最终复制了原始文件,从/etc/skel~/

以下是我当前~/.bashrc (发行版的原始版本,它仍然给我同样的错误)的内容。


# ~/.bashrc: executed by bash(1) for non-login shells.


# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)


# for examples



# If not running interactively, don't do anything


case $- in


 *i*) ;;


 *) return;;


esac



# don't put duplicate lines or lines starting with space in the history.


# See bash(1) for more options


HISTCONTROL=ignoreboth



# append to the history file, don't overwrite it


shopt -s histappend



# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)


HISTSIZE=1000


HISTFILESIZE=2000



# check the window size after each command and, if necessary,


# update the values of LINES and COLUMNS.


shopt -s checkwinsize



# If set, the pattern"**" used in a pathname expansion context will


# match all files and zero or more directories and subdirectories.


#shopt -s globstar



# make less more friendly for non-text input files, see lesspipe(1)


[ -x /usr/bin/lesspipe ] && eval"$(SHELL=/bin/sh lesspipe)"



# set variable identifying the chroot you work in (used in the prompt below)


if [ -z"${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then


 debian_chroot=$(cat /etc/debian_chroot)


fi



# set a fancy prompt (non-color, unless we know we"want" color)


case"$TERM" in


 xterm-color|*-256color) color_prompt=yes;;


esac



# uncomment for a colored prompt, if the terminal has the capability; turned


# off by default to not distract the user: the focus in a terminal window


# should be on the output of commands, not on the prompt


#force_color_prompt=yes



if [ -n"$force_color_prompt" ]; then


 if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then


 # We have color support; assume it's compliant with Ecma-48


 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such


 # a case would tend to support setf rather than setaf.)


 color_prompt=yes


 else


 color_prompt=


 fi


fi



if ["$color_prompt" = yes ]; then


 PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '


else


 PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '


fi


unset color_prompt force_color_prompt



# If this is an xterm set the title to user@host:dir


case"$TERM" in


xterm*|rxvt*)


 PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"


 ;;


*)


 ;;


esac



# enable color support of ls and also add handy aliases


if [ -x /usr/bin/dircolors ]; then


 test -r ~/.dircolors && eval"$(dircolors -b ~/.dircolors)" || eval"$(dircolors -b)"


 alias ls='ls --color=auto'


 #alias dir='dir --color=auto'


 #alias vdir='vdir --color=auto'



 alias grep='grep --color=auto'


 alias fgrep='fgrep --color=auto'


 alias egrep='egrep --color=auto'


fi



# colored GCC warnings and errors


#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'



# some more ls aliases


alias ll='ls -alF'


alias la='ls -A'


alias l='ls -CF'



# Add an"alert" alias for long running commands. Use like so:


# sleep 10; alert


alias alert='notify-send --urgency=low -i"$([ $? = 0 ] && echo terminal || echo error)""$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"'



# Alias definitions.


# You may want to put all your additions into a separate file like


# ~/.bash_aliases, instead of adding them here directly.


# See /usr/share/doc/bash-doc/examples in the bash-doc package.



if [ -f ~/.bash_aliases ]; then


 . ~/.bash_aliases


fi



# enable programmable completion features (you don't need to enable


# this, if it's already enabled in /etc/bash.bashrc and /etc/profile


# sources /etc/bash.bashrc).


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



根据朋友的建议,我在文件顶部添加了set -x,定义了一个别名fi,被解释为结束if语句,已更改成别名的名称,问题就解决了。


答案1:

.bash_aliases (这是由.bashrc调用的,我实际上也检查过,顺便说一下)有问题,我定义了一个别名fi,当然,被解释为结束if语句,已更改别名的名称,解决了问题。


答案2:

从bash包中提取原始的.bashrc文件:


$ apt-get download bash && 


 dpkg-deb -x bash_*_*.deb bash





文件  BASH  bashrc  
相关文章