Неожиданная ошибка конца файла при попытке перезапустить оболочку после установки Google Cloud - PullRequest
0 голосов
/ 02 мая 2019

Я установил Google Cloud с помощью команды bash и в настоящее время получаю эту ошибку при попытке перезапустить свою оболочку

bash: /Users/emm/.bash_profile: строка 15: синтаксическая ошибка: неожиданный конец файла

Это команда, которую я набрал

exec -l $SHELL

Вот мой .bash_profile

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# added by Anaconda3 5.2.0 installer
export PATH="/Users/emm/anaconda3/bin:$PATH"

# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/emm/my_app/googlecloud/google-cloud-sdk/path.bash.inc' ]; then . '/Users/emm/my_app/googlecloud/google-cloud-sdk/path.bash.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/Users/emm/my_app/googlecloud/google-cloud-sdk/completion.bash.inc' ]; then . '/Users/emm/my_app/googlecloud/google-cloud-sdk/completion.bash.inc'; 

1 Ответ

2 голосов
/ 02 мая 2019

В вашем .bash_profile отсутствует fi в конце.Каждый if нуждается в закрытии fi.

Чтобы исправить ошибку, запустите echo fi >> /Users/emm/.bash_profile один раз.

Кстати:

Вы можете улучшить свой .bash_profileс помощью переменных.Вместо того, чтобы повторять каждый путь дважды ...

if [ -f 'longPath1' ]; then . 'longPath1'; fi
if [ -f 'longPath2' ]; then . 'longPath2'; fi
...

... вы можете написать ...

for p in 'longPath1' 'longPath2'; do
    [ -f "$p" ] && .p
done

В вашем конкретном случае вы даже можете использовать расширение скобки

for p in /Users/emm/my_app/googlecloud/google-cloud-sdk/{path,completion}.bash.inc; do
    [ -f "$p" ] && .p
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...