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

Сообщение об ошибке синтаксическая ошибка рядом с неожиданным токеном `(‘ происходит в среде 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' commandИспользование команды «dos2unix.exe»

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

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

Ссылка на основную публикацию
Adblock
detector