![터미널을 열 때 이 문제가 발생하는 이유는 무엇입니까? Line 12: 마커 "fi" 근처에 예기치 않은 구문 오류가 있습니까? [폐쇄]](https://linux55.com/image/212480/%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%EC%97%B4%20%EB%95%8C%20%EC%9D%B4%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20Line%2012%3A%20%EB%A7%88%EC%BB%A4%20%22fi%22%20%EA%B7%BC%EC%B2%98%EC%97%90%20%EC%98%88%EA%B8%B0%EC%B9%98%20%EC%95%8A%EC%9D%80%20%EA%B5%AC%EB%AC%B8%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
이 콘텐츠를 게시하기에 적합한 커뮤니티가 아니라면 사과드립니다. 제 질문에 적용되는 적절한 Stackexchange 커뮤니티에 저를 연결해 주시기 바랍니다. 이 오류에 대해 사이트를 검색했지만 기술에 정통하지 않기 때문에 무슨 일이 일어나고 있는지 이해할 수 없으므로 양해해 주셔서 감사합니다.
문제: Mac에서 터미널을 시작할 때마다 이 오류가 발생합니다.
-bash: /Users/Anthonywes/.bash_profile: line 12: syntax error near unexpected token `fi'
-bash: /Users/Anthonywes/.bash_profile: line 12: ` fi'
이것이 무엇을 의미하고 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 bash가 무엇을 의미하는지조차 이해하지 못합니다. 무슨 일인지 나한테 설명해 줄 수 있는 사람 있나요?
이 비디오(타임스탬프: 1:09:04)에서 MySQL을 설치하려고 할 때 이 문제를 발견했습니다.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를 제거하려고 했더니 파일에서 한 줄을 삭제하라는 메시지가 나타났습니다. 여기서 오류가 발생합니까?
질문: 그래서 내 질문은 두 가지입니다.
- "fi"와 관련된 처음 두 줄의 오류는 실제로 무엇을 의미합니까? 나는 무슨 일이 일어나고 있는지에 대한 일반적인 아이디어를 얻고 싶습니다.
- 이 문제를 어떻게 해결하고 귀하가 작성한 내용이 이 문제를 해결하는 이유를 설명할 수 있습니까?
답변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/