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

Синтаксисната грешка на съобщението за грешка близо до неочакван маркер "(" се появява в среда от тип 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' като:

# котка test_script5.sh

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

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

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

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

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