1

У меня есть функция Bash:

myworkhomebrewapp(){ atom $HOMEBREW_FRONTEND; atom $HOMEBREW_BACKEND; workon homebrew_server; cd $HOMEBREW_BACKEND; python manage.py runserver & ; /usr/bin/open -a "/Applications/Google Chrome.app" "file:///Users/cchilders/projects/good_brews/frontend/index.html" ;}

Но это вызывает ошибку

$ src
-bash: /Users/cchilders/.bash_profile: line 63: syntax error near unexpected token `;'
-bash: /Users/cchilders/.bash_profile: line 63: `myworkhomebrewapp(){ atom $HOMEBREW_FRONTEND; atom $HOMEBREW_BACKEND; workon homebrew_server; cd $HOMEBREW_BACKEND; python manage.py runserver & ; /usr/bin/open -a "/Applications/Google Chrome.app" "file:///Users/cchilders/projects/good_brews/frontend/index.html" ;}'

Я не знаю, что вызывает ошибку, но комментирование этой строки исправляет это. Где моя функция bash нарушена, пожалуйста? Спасибо

Одно из решений:

Я смог решить эту проблему, разделив новые строки в моем .bashrc, а это не то, что я хотел:

myworkhomebrewapp(){
    atom $HOMEBREW_FRONTEND
    atom $HOMEBREW_BACKEND
    workon homebrew_server
    cd $HOMEBREW_BACKEND
    python manage.py runserver &
    sleep 5
    /usr/bin/open -a "/Applications/Google Chrome.app" "file://$HOMEBREW_FRONTEND/index.html"
}

1 ответ1

2

синтаксическая ошибка рядом с неожиданным токеном ;

При запуске вашего однострочного через ShellCheck выдается следующее предупреждение / ошибки (предупреждения зеленые, ошибки красные):

Удаление ; из python manage.py runserver & ; удаляет ошибку, оставляя только предупреждения:


ShellCheck - инструмент статического анализа сценария оболочки

ShellCheck - это инструмент GPLv3, который выдает предупреждения и предложения для сценариев оболочки bash/sh:

Снимок экрана терминала, на котором показаны проблемные строки сценария оболочки.

Цели ShellCheck:

  • Чтобы указать и прояснить типичные проблемы синтаксиса новичка, которые заставляют оболочку выдавать загадочные сообщения об ошибках.

  • Указать и прояснить типичные семантические проблемы промежуточного уровня, которые заставляют оболочку вести себя странно и нелогично.

  • Чтобы указать на тонкие предостережения, угловые случаи и ловушки, которые могут привести к сбою в противном случае работающего сценария опытного пользователя в будущем.

Source ShellCheck

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .