Исправлено: синтаксическая ошибка рядом с неожиданным токеном `('

Синтаксическая ошибка сообщения об ошибке рядом с неожиданным токеном `(' возникает в среде Unix-типа, Cygwin и в интерфейсе командной строки в Windows. Эта ошибка, скорее всего, будет вызвана при попытке запустить отредактированный сценарий оболочки или созданный в старых системах DOS / Windows или Mac.

Синтаксическая ошибка рядом с неожиданным токеном `('

Это сообщение об ошибке также появляется при вводе команд в командной строке Linux для повседневных задач, таких как ручное копирование файлов и т. Д. Основные причины, по которым возникает это сообщение об ошибке, либо из-за неправильного синтаксиса, либо из-за проблемы ОС при интерпретации команд другой системы / ракушка.

Что вызывает синтаксическую ошибку рядом с неожиданным токеном `('?

Причины этого сообщения об ошибке очень разнообразны и не могут быть перечислены в одной статье, поскольку существуют тысячи возможностей неправильного синтаксиса при выполнении команд. Основными причинами этой ошибки являются:

  • Неверный синтаксис при выполнении любой команды на любой платформе. Либо вы не используете команду правильно, либо ввели неверный синтаксис.
  • Оболочка не совместима между системами Unix / DOS.
  • Есть проблемы с запуском скрипта оболочки bash из другого источника .

В этой статье мы предполагаем, что вы знакомы с основами кодирования и имеете представление о том, что вы делаете. Если вы новичок, лучше всего следовать подробным инструкциям по языку / команде, которые вы пытаетесь выполнить. Возможно, вы допустили ошибку в каком-то синтаксисе.

Решение 1. Проверка синтаксиса и формата команд

Первая и главная причина, по которой вы можете столкнуться с этим сообщением об ошибке, заключается в неправильном синтаксисе в вашем коде или в неправильном формате команд. Каждая команда имеет предопределенный формат, который вы можете увидеть в ее документации. Некоторые параметры являются необязательными, другие являются обязательными.

Кроме того, особое внимание следует уделить дополнительному пространству, использованию двойных кавычек и обязательным параметрам. Если какой-либо из них отсутствует или был объявлен неправильно, вы не сможете выполнить свой код.

Например, вместо следующего кода

 [mycom7] # ./ctopo.sh um_test1 [(1, 2), (2, 1)] 

Вы должны выполнить это как

 [mycom7] # ./ctopo.sh um_test1 "[(1, 2), (2, 1)]" 

Кроме того, убедитесь, что вы правильно выполняете скрипт команд / оболочки, если он занимает несколько строк.

Из-за типа параметра двойные кавычки необходимы. Дополнительный пробел также может испортить ваш код и вызвать сообщение об ошибке. Убедитесь, что вы проверили официальную документацию команды, которую вы выполняете, и посмотрите, есть ли там проблема.

Решение 2. Устранение неполадок в сценарии оболочки

Если используется сценарий оболочки, который работает в исходной системе, но возвращает ошибку в целевом объекте, вы можете устранить неполадки сценария, проверив переменные, которые хранятся во время выполнения, а затем посмотрите, что является причиной проблемы. Это очень распространенная причина, так как в некоторых случаях оболочка пытается интерпретировать непечатаемый символ.

Попробуйте запустить оболочку с параметром 'vx'. Это покажет нам, какие команды выполняются и какие значения хранятся в скрипте. Здесь вы можете устранить неполадки и диагностировать, что происходит не так.

Например, выполните скрипт в терминале после включения vx как:

 # sh -vx ./test_script5.sh 

Вы можете проверить содержимое скрипта с помощью команды cat:

 # cat test_script5.sh 

Решение 3. Использование команды dos2unix.exe

В текстовых файлах Windows / DOS новая строка представляет собой комбинацию возврата каретки (\ r), за которой следует перевод строки (\ n). В Mac (до Mac OS X) разрыв строки использовал простой возврат каретки (\ r). Unix / Linux и Mac OS X используют перевод строки (\ n). Если вы используете Cygwin, он не сможет обработать сценарии, созданные в DOS / Windows и более старых Mac, из-за дополнительного символа возврата каретки (\ r).

Использование команды dos2unix.exe

Здесь вы можете выполнить команду «dos2unix.exe», которая преобразует скрипт в правильный формат, а затем вы можете выполнить его без проблем.

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

Интересные статьи