为什么当我打开终端时会出现此问题:第 12 行:意外标记“fi”附近的语法错误?

为什么当我打开终端时会出现此问题:第 12 行:意外标记“fi”附近的语法错误?

如果这不是发布此内容的合适社区,我们深表歉意。请随时将我链接到适用我的问题的相应 stackexchange 社区。我已经在网站上搜索过此错误,但由于我不懂技术,所以我不明白发生了什么,所以感谢您的耐心等待。

问题:每当我在 Mac 上启动终端时,都会出现此错误

-bash: /Users/Anthonywes/.bash_profile: line 12: syntax error near unexpected token `fi'
-bash: /Users/Anthonywes/.bash_profile: line 12: `    fi'

我不确定这意味着什么以及发生了什么。我什至不明白bash是什么意思。有人能够向我解释发生了什么事吗?

当我尝试从这个视频安装 MySQL 时,我注意到了这个问题(时间戳:1:09:04):https://www.youtube.com/watch?v=HXV3zeQKqGY&t=3950s&ab_channel=freeCodeCamp.org

它应该看起来像这样: 在此输入图像描述

然而,这对我来说是这样的:

-bash: /Users/Anthonywes/.bash_profile: line 12: syntax error near unexpected token `fi'
-bash: /Users/Anthonywes/.bash_profile: line 12: `    fi'
Anthonys-Air:~ -bash: /Users/Anthonywes$ echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
Anthonys-Air:~ -bash: /Users/Anthonywes$ . ~/.bash_profile
-bash: /Users/Anthonywes/.bash_profile: line 12: syntax error near unexpected token `fi'
-bash: /Users/Anthonywes/.bash_profile: line 12: `    fi'

下面是 .bash_profile 的内容:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/Anthonywes/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/Anthonywes/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/Anthonywes/opt/anaconda3/etc/profile.d/conda.sh"
    else
        
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

export PATH=/usr/local/mysql/bin:$PATH
export PATH=/usr/local/mysql/bin:$PATH
export PATH=/usr/local/mysql/bin:$PATH

我确实记得几个月前,我尝试卸载 Anaconda,它说要删除该文件中的一行。这就是错误的来源吗?

问题: 所以我的问题有两个:

  1. 与“fi”相关的前两行错误实际上意味着什么?我想大致了解正在发生的事情。
  2. 我该如何解决这个问题,你能解释一下为什么你写的内容可以解决这个问题吗?

答案1

语句中存在空分支是一个语法错误if

else
(nothing)        
fi

这会导致你的错误。删除删除空else分支:

if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/Anthonywes/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/Anthonywes/opt/anaconda3/etc/profile.d/conda.sh"
    fi
fi

更多信息请访问https://www.shellcheck.net/

相关内容