当我打开终端时,出现以下错误:
bash: /home/ai/.bashrc: line 75: syntax error near unexpected token `['
bash: /home/ai/.bashrc: line 75: `if [ -x /usr/bin/dircolors ]; then'
以注释开头的bashrc文件脚本的相关部分如下:
# 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
我做错了什么以及如何纠正这个问题?
答案1
查看您的 Pastebin 链接,您缺少一个在有问题的块之前esac
结束语句的语句。case
答案2
该错误很可能发生在该代码块之前。例如,如果我将这段代码放入它自己的脚本中,并且echo
别名如下:
#!/bin/bash
# example.bash
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
echo "alias ls='ls --color=auto'"
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
echo "alias grep='grep --color=auto'"
echo "alias fgrep='fgrep --color=auto'"
echo "alias egrep='egrep --color=auto'"
fi
我明白了:
$ ./example.bash
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
这表明它很好。
终止 case 块
该块没有对应的esac
.
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
....