Исправить синтаксическую ошибку Bash рядом с неожиданным токеном
Разное / / May 30, 2022
Кодирование в терминале Linux Bash стало преобладающей практикой в секторе кодирования. Инженеры-программисты и студенты, изучающие язык программирования, сталкиваются с различными ошибками. Если вы неоднократно сталкивались с такими ошибками, как синтаксическая ошибка рядом с неожиданным токеном '(' или синтаксическая ошибка Bash рядом с неожиданным токеном, вы можете попробовать использовать методы, описанные в статье, и стать опытным кодер. Прочитайте методы, описанные в статье, в описанном порядке и исправьте ошибки в командных строках вашего файла.
Содержание
- Как исправить синтаксическую ошибку Bash рядом с неожиданным токеном
- Способ 1: исправить ошибки в каждой командной строке вручную
- Шаг I: Чтение содержимого файла
- Шаг II. Удалите разрывы строк Windows
- Шаг III: Установите разрешения для вновь созданного файла
- Шаг IV: форматирование кода в файле
- Способ 2: переписать код
- Способ 3: используйте команду Dos2unix.exe
Как исправить синтаксическую ошибку Bash рядом с неожиданным токеном
Linux Bash — интерпретатор командной строки для системы на базе Linux, заменяющий Bourne Shell или sh. Файлы именуются в формате .sh в Linux.
Баш сценарий. Если в коде сценария оболочки есть проблемы с форматированием, вы можете столкнуться с синтаксической ошибкой. Если ошибка близка к ( символа, оболочка подскажет вам ошибку в строке и отобразит ошибку в соответствующей строке. Поскольку Linux Bash является интерпретатором, строка с ошибкой будет возвращена вам в Терминале, и он перестанет сканировать остальные команды в скрипте. Следовательно, вам нужно исправить ошибку в конкретной командной строке и перейти к следующей, чтобы исправить непредвиденную ошибку токена в сценарии оболочки. Причины синтаксической ошибки рядом с неожиданным токеном в Linux Bash перечислены ниже в этом разделе, как показано ниже:- Кодирование с escape-последовательностями Если вы написали код в сценарии Bash, управляющие последовательности или кавычки в сценарии могут вызвать ошибки. Чтобы исправить ошибку, управляющие последовательности и кавычки должны быть записаны в правильном формате.
- Неверный синтаксис в файле кодировки- Синтаксис в коде может привести к синтаксической ошибке, если команда написана с неправильным синтаксисом, например, с изменением порядка циклов.
- Неправильное использование команды- Если вы неправильно используете команду, например неправильное присвоение значения, у вас может возникнуть синтаксическая ошибка.
- Несовместимая ОС в системах- Если оболочка для сценария кодирования несовместима между системами Unix и DOS, может возникнуть непредвиденная ошибка.
- Проблемы в сценарии оболочки bash- Проблемы, возникающие в сценарии оболочки bash в файле, скопированном из другой системы, могут привести к непредвиденной ошибке токена.
Рассмотрим файл с именем пример.sh созданный в сценариях Linux Bash со следующими командными строками для пояснительных целей. Файл примера допускает синтаксические ошибки и включает все возможные команды, которые можно использовать в сценарии оболочки.
str= ‘Первая командная строка ‘(пример файла)’ в скрипте’ул = [(1,2),(3,4)]если[ $day == "mon" ] тогда эхо "мон"еще эхо "нет пн"фидля ПЕРЕМЕННОЙ в {0..2}; тогдавыполнить эхо-команду1; эхо-команда2; эхо-команда3; эхо-команда4; Выполненопока верно; делать, если [ $ день == "пн" ]; затем эхо «мон»; иначе эхо «не пн»; Выполнено; фи
Способ 1: исправить ошибки в каждой командной строке вручную
Первый способ исправить ошибки — исправить синтаксическую ошибку вручную в каждой командной строке скрипта. В этом разделе обсуждаются шаги по устранению синтаксических ошибок рядом с неожиданным токеном в командных строках. Процесс исправления непредвиденной ошибки токена в Терминале описан ниже. Запустите файл в Терминал введя ./пример.sh команду и нажав кнопку Войтиключ.
2. Обратите внимание линии которые имеют непредвиденную ошибку маркера в командных строках в результате ниже.
3. Исправить ошибку в каждой строке, следуя методам, обсуждаемым ниже, индивидуально и сохранение файл.
4. Бежать файл снова после изменений и проверьте, устранена ли синтаксическая ошибка в файле.
Читайте также:Как установить оболочку Linux Bash в Windows 10
Шаг I: Чтение содержимого файла
Первым шагом к устранению синтаксической ошибки в командной строке является чтение файла в Терминале. ЕСЛИ есть проблемы с файлом, возможно, вы не сможете просмотреть файл. Обычной практикой просмотра файла является запуск файла с помощью команды ./пример.sh но вы не можете изменить содержимое файла. Варианты просмотра содержимого файла и изменения командных строк для исправления синтаксической ошибки рядом с неожиданным токеном «(» обсуждаются ниже.
Вариант 1: через CAT-команду
Первый вариант заключается в использовании кошка команда для просмотра файла в сценарии оболочки. Прочитайте содержимое файла с неожиданной ошибкой токена с помощью команды cat, введя команду кошка –v пример.sh в Терминале.
Примечание 1: пример.sh используется в пояснительных целях, и вам нужно ввести имя файла с непредвиденной ошибкой токена.
Заметка 2: Команда cat –v используется для отображения всех невидимых символов, которые могут представлять собой возврат каретки или пробел без разрыва.
Вариант 2: Через команду VX
Если вы не можете использовать команду cat, вы можете попробовать использовать команду vx для просмотра и изменения команд в файле, используя шаг, указанный ниже. Введите ш –vx ./example.sh команду в Терминале, чтобы открыть файл.
Вариант 3: Через od –a Command
3. Если в командной строке есть несколько невидимых символов, вы можете использовать команду od –a для просмотра файла. Если содержимое файла не видно в файле кода, вы можете попробовать прочитать файл с помощью команды od – пример.sh изменить код.
Шаг II. Удалите разрывы строк Windows
Если в сценарии оболочки есть разрывы строк Windows, вы можете использовать консольные команды, чтобы удалить разрывы строк и скопировать строки кода в новый файл, чтобы исправить ошибку.
Введите следующую команду в Терминале, чтобы сохранить содержимое файла в другой файл с именем исправлен пример.sh чтобы удалить разрывы строк Windows в сценарии.
тр –d '\ г'исправлен пример.sh
Шаг III: Установите разрешения для вновь созданного файла
Вам необходимо установить разрешение для вновь созданного файла для редактирования файла, чтобы файл можно было выполнить в оболочке. Введите команду как chmod 755 исправленный пример.sh в терминале, чтобы предоставить права доступа к файлу и запустить файл. Теперь вы можете просмотреть исправленный файл и исправить проблемы с форматированием, а также исправить синтаксическую ошибку рядом с неожиданным токеном «(» в файле.
Шаг IV: форматирование кода в файле
Второй шаг — отформатировать строки кода по отдельности и вручную изменить командные строки в файле. Варианты форматирования файла для исправления синтаксической ошибки рядом с неожиданным токеном «(» обсуждаются ниже в этом разделе.
Вариант 1: заменить одинарные кавычки двойными кавычками
Если вы используете одинарные кавычки в командной строке, вам нужно изменить команду, заменив одинарную кавычку двойными, чтобы исправить синтаксическую ошибку. в пример.sh файл, удалите строки кода, которые имеют ‘ а также ’ или одинарные кавычки в команде и замените одинарные кавычки на двойные кавычки или “ а также ’’. Здесь, в файле примера, вам нужно изменить код как str= "Первая командная строка "\(пример файла)\" в скрипте"
Примечание: Двойные кавычки необходимы для команд типа параметра, таких как ул = "[(1,2),(3,4)]".
Читайте также:20 лучших легковесных дистрибутивов Linux 2022 года
Вариант 2: добавить $ к строковым строкам
Если вы добавили строковые значения в скрипт, вам нужно добавить $ к строковым значениям, чтобы исправить синтаксическую ошибку в скрипте. Добавить $ для командной строки с нить значения, чтобы исправить непредвиденную ошибку. Здесь, в файле примера, измените командную строку как;
str= $ ‘Первая командная строка ‘\(файл примера)\’ в скрипте’
Примечание: Если вы используете $ в строковом значении вы можете обойти escape-последовательность обратной косой черты, поскольку командные строки декодируются по стандарту ANSI C. Другими словами, используя $ для строкового значения, вы можете избежать использования двойных кавычек вместо одинарных в командных строках.
Вариант 3: преобразовать вкладки в пробелы
Пробелы, которые вы оставили между двумя операторами в команде, должны быть пробелами, а не табуляцией, чтобы исправить синтаксическую ошибку в сценарии. Если вы получаете ошибку на Cygwin, вы можете попробовать преобразовать вкладки в кодах в пробелы, чтобы исправить ошибку. Командная строка представлена ниже как;
выполнить эхо-команду1; эхо-команда2; эхо-команда3; эхо-команда4; Выполнено
Приведенную выше команду следует переписать, как показано ниже, чтобы исправить ошибку.
выполнить эхо-команду1; эхо-команда2; эхо-команда3; эхо-команда4; Выполнено
Вариант 4. Используйте escape-символы
Если вы используете символ bash, важно использовать escape-символ вместе с символом bash, чтобы исправить синтаксическую ошибку. скобки или же () являются специальными символами bash в файле, поэтому вам нужно будет использовать escape-символ или обратная косая черта в командной строке, чтобы экранировать обычные символы для выполнения команды. str= ‘Первая командная строка \‘(пример файла)\’ в скрипте’ Команда не выдаст ошибку в Терминале, так как используется escape-символ.
Читайте также: Как попасть к нам в Linux
Вариант 5. Используйте пробелы между символами
Сценарий оболочки распознает команды и операторы в сценарии по значениям по умолчанию. Вам необходимо обеспечить правильное использование пробелов между символами, чтобы оболочка могла идентифицировать команду, указанную в сценарии. Пробел — это символ, который используется для различения двух символов в командной строке. В коде нет пробела между если а также [, что дает непредвиденную ошибку токена в качестве если[ команда не идентифицируется оболочкой. Если код изменить на если [$день == "пн"]; тогда ошибка может быть решена как команда бюллетеня оболочки если определяется оболочкой.
Вариант 6. Используйте разделитель команд для операторов
Различные команды в сценарии оболочки должны быть разделены на операторы, чтобы Терминал мог идентифицировать отдельные команды. Вам нужно использовать разделитель команд, чтобы исправить синтаксическую ошибку в Linux Bash. Операторы в команде должны быть разделены разделителем команд, таким как точка с запятой или ; или новую строку, нажав кнопку Войти ключ. Например, команда в коде если [$day == "mon" ] то должно быть изменено как если [$день == "пн"]; тогда чтобы исправить ошибку. Поскольку точка с запятой используется в качестве разделителя команд между символами [ а также тогда, вы можете исправить эту ошибку.
Вариант 7. Удалить дополнительные операторы
Иногда вы могли добавить дополнительные операторы или перепутать коды в случае нескольких вложенных циклов. Вам необходимо удалить дополнительные операторы в командной строке, чтобы исправить синтаксическую ошибку рядом с неожиданным токеном '(' в Linux Bash. Баш петли для… сделано или и конструкционные конструкции если… фи должен быть в правильном синтаксисе. Файл примера имеет неправильный синтаксис в за петля имеет термин тогда который используется в если утверждение. Изменение кода следующим образом устранит непредвиденную ошибку токена. Заявление тогда является дополнительным оператором в коде, и удаление термина исправит ошибку.
для ПЕРЕМЕННОЙ в {0..2}; выполнить эхо-команду1; эхо-команда2; эхо-команда3; эхо-команда4; Выполнено
Вариант 8. Убедитесь, что порядок закрытия выписок правильный
Если вы используете много вложенных или условных операторов конструкции в сценарии оболочки, вы должны убедиться, что циклы закрываются в том порядке, в котором они открываются. Вы можете использовать новый разделитель строк, чтобы избежать конфликтов с циклами. Порядок закрытия вложенных циклов и условных операторов должен быть правильным и не должен изменяться. Циклы в коде пока верно; делать, если [ $ день == "пн" ]; затем эхо «мон»; иначе эхо «не пн»; Выполнено; фи необходимо закрыть в правильном порядке. Изменение кода, как показано ниже, может исправить непредвиденную ошибку токена, поскольку порядок закрытия операторов исправлен.
пока верно; делать, если [ $ день == "пн" ]; затем эхо «мон»; иначе эхо «не пн»; фи; Выполнено
Читайте также:Что такое интерпретатор командной строки?
Способ 2: переписать код
Если вы скопировали код и вставили его в новый файл в Терминале, вы можете попробовать переписать код вручную, чтобы исправить ошибку. Ошибки в коде можно исправить, если вы написали код без каких-либо ошибок формата в сценарии оболочки. Это связано с тем, что скрытые символы и проблемы с форматированием в текстовом редакторе, таком как Microsoft Word, которые вы могли использовать для копирования и вставки кода, могли привести к ошибке.
Способ 3: используйте команду Dos2unix.exe
Если вы используете операционную систему Unix, вы можете писать коды с символом перевода строки как \n для перехода к следующей строке в файле. Однако, если вы используете ОС Windows, вам нужно перейти к следующей строке в коде, используя возврат каретки и перевод строки или \r\n в файле. Если вы выполняете код, написанный в ОС Windows, в Cygwin, вы можете получить синтаксическую ошибку рядом с неожиданным токеном ‘(’.
Чтобы исправить ошибку, вам нужно очистить символы возврата каретки с помощью DOS в Unix Инструмент командной строки в качестве конвертера форматов текстовых файлов. Введите следующую команду как dos2unix.exe пример.sh в терминале, и вы можете преобразовать файл в формат Unix.
Рекомендуемые:
- Как создать аккаунт Telegram на Android
- Исправить ошибку выполнения C++ в Windows 10
- Как удалить учетную запись Github навсегда
- 14 лучших видеокарт для Linux
В статье рассмотрены основные методы исправления Синтаксическая ошибка Bash рядом с неожиданным токеном‘(’ в сценарии. Если вы используете Linux Bash, вы можете использовать методы, описанные в этом разделе, для исправления синтаксической ошибки Bash рядом с неожиданным токеном. Если вы прочитали всю статью и нашли содержание полезным, сообщите нам о своих предложениях и вопросах в разделе комментариев.