Содержание
Сообщение об ошибке синтаксическая ошибка рядом с неожиданным токеном `(‘ происходит в среде 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», которая преобразует скрипт в правильный формат, а затем вы сможете выполнить его без проблем.
В заключение вам необходимо изучить ваши команды и тип используемой вами платформы и убедиться, что нет никаких расхождений. Поскольку мы не можем охватить каждую возможность, у вас будет представление о том, какие ошибки могут возникать и как их исправить.