Поправете: Синтаксична грешка близо до неочакван маркер `('

Грешка в синтаксиса на съобщението за грешка близо до неочакван маркер `(' възниква в среда от тип Unix, Cygwin и в интерфейса на командния ред в Windows. Тази грешка най-вероятно ще се задейства, когато се опитате да стартирате скрипт на черупка, който е бил редактиран или създаден в по-стари DOS / Windows или Mac системи.

Синтаксична грешка близо до неочакван маркер `('

Това съобщение за грешка се появява и когато въвеждате команди в командния ред на Linux за ежедневни задачи като копиране на файлове ръчно и т.н. Основните причини, поради които се появява това съобщение за грешка, са или поради лош синтаксис или проблем на ОС при интерпретиране на командите на друга система / черупка.

Какво причинява синтаксична грешка близо до неочакван маркер `('?

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

  • Лош синтаксис при изпълнение на която и да е команда от всяка от платформите Или не използвате командата правилно, или сте въвели грешен синтаксис.
  • Черупката не е съвместима между Unix / DOS системи.
  • Има проблеми при стартирането на скрипта на bash shell от друг източник .

В тази статия предполагаме, че знаете основите на кодирането и имате представа какво правите. Ако сте начинаещ, най-добре е да следвате подробни уроци на езика / командата, които се опитвате да изпълните. Вероятно сте направили грешка на някакъв синтаксис.

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

Първата и най-важна причина, поради която може да изпитате това съобщение за грешка, е лошото синтаксис във вашия код или не следвате точния формат на командите. Всяка команда има предварително определен формат, който можете да видите в нейната документация. Няколко параметъра са незадължителни, а други са задължителни.

Освен това трябва да се внимава за допълнително пространство, използване на двойни кавички и задължителни параметри. Ако някой от тях липсва или е обявен неправилно, няма да можете да изпълните кода си.

Например вместо следния код

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

Трябва да го изпълните като

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

Освен това се уверете, че изпълнявате правилно вашите команди / скрипт на shell, ако се простира на няколко реда.

Поради типа на параметъра са необходими двойни кавички. Допълнително място може също да съсипе кода ви и да накара съобщението за грешка. Уверете се, че проверите официалната документация на командата, която изпълнявате, и проверете дали има проблем там.

Решение 2: Отстраняване на неизправности при скрипта на черупката

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

Опитайте да стартирате черупката с параметъра 'vx'. Това ще ни покаже какви команди се изпълняват и какви стойности се съхраняват в скрипта. Чрез тук можете да отстраните проблеми и да диагностицирате какво върви нередно.

Например, изпълнете скрипта в терминала, след като включите 'vx' като:

 # sh -vx ./test_script5.sh 

Можете да проверите съдържанието на скрипта, като използвате командата 'cat' като:

 # cat test_script5.sh 

Решение 3: Използване на командата 'dos2unix.exe'

В текстовите файлове на Windows / DOS нов ред е комбинация от Carriage Return (\ r), последвана от Feed Feed (\ n). В Mac (преди Mac OS X) за прекъсване на реда се използва обикновен Carriage Return (\ r). Unix / Linux и Mac OS X използват прекъсвания на линиите (\ n). Ако използвате Cygwin, той няма да обработи скриптовете, направени от DOS / Windows и по-стария Mac поради допълнителния символ за връщане на превоз (\ r).

Използване на командата 'dos2unix.exe'

Тук можете да направите команда 'dos2unix.exe', която ще преобразува скрипта в правилния формат и след това можете да го изпълните без никакви проблеми.

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

Интересни Статии