Исправљено: грешка у синтакси у близини неочекиваног токена `(& лскуо;

Синтаксна грешка поруке о грешци у близини неочекиваног токена `(' јавља се у окружењу Уник типа Цигвин и у интерфејсу командне линије у оперативном систему Виндовс. Ова грешка ће се највероватније покренути када покушате да покренете скрипту љуске која је уређена или створене у старијим системима ДОС / Виндовс или Мац.

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

Ова порука о грешци такође се појављује када уносите наредбе у Линук командну линију за свакодневне задатке као што је ручно копирање датотека итд. Главни разлози због којих се ова порука о грешци појављује су или лоша синтакса или проблем ОС-а у тумачењу наредби другог система / шкољка.

Шта узрокује синтаксну грешку у близини неочекиваног токена `('?

Разлози за ову поруку о грешци су врло разноврсни и не могу се навести у једном чланку, јер постоји хиљаде могућности погрешке синтаксе приликом извршавања наредби. Основни разлози за ову грешку су:

  • Лоша синтакса при извршавању било које наредбе на било којој платформи. Или не користите наредбу правилно или сте унели погрешну синтаксу.
  • Љуска није компатибилна између Уник / ДОС система.
  • Постоје проблеми са покретањем скрипте басх љуске из другог извора .

У овом чланку претпостављамо да знате основе кодирања и да имате идеју шта радите. Ако сте почетник, најбоље је да следите детаљне упуте за језик / наредбу коју покушавате да извршите. Вероватно сте погрешили у некој синтакси.

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

Први и најважнији разлог зашто бисте могли да наиђете на ову поруку о грешци је погрешна синтакса вашег кода или непоштовање тачног формата наредби. Свака наредба има унапред дефинисани формат који можете видети у њеној документацији. Неколико параметара није обавезно, а остали су обавезни.

Даље, треба бити посебно опрезан за додатни простор , употребу двоструких наводника и обавезне потребне параметре. Ако било који од њих недостаје или је нетачно проглашен, нећете моћи извршити свој код.

На пример, уместо следећег кода

[мицом7] # ./цтопо.сх ум_тест1 [(1,2), (2,1)]

Морате га извршити као

[мицом7] # ./цтопо.сх ум_тест1 "[(1,2), (2,1)]"

Такође, уверите се да правилно извршавате своје наредбе / скрипту љуске ако се простире на неколико редова.

Због типа параметра неопходни су двоструки наводници. Додатни простор такође може покварити ваш код и форсирати поруку о грешци. Обавезно проверите службену документацију наредбе коју извршавате и видите да ли постоји проблем тамо.

Решење 2: Решавање проблема са скриптом љуске

Ако користите скрипту љуске која ради у изворном систему, али враћа грешку у циљу, можете да решите проблем са скриптом тако што ћете проверити променљиве које су ускладиштене током извршавања, а затим видети шта узрокује проблем. Ово је врло чест узрок, јер у неколико случајева љуска покушава да протумачи карактер који се не може исписати.

Покушајте да покренете љуску са параметром 'вк'. Ово ће нам показати које се наредбе извршавају и које се вредности чувају у скрипти. Овде можете да решите проблеме и дијагностикујете шта иде по злу.

На пример, извршите скрипту у терминалу након укључивања 'вк' као:

# сх -вк ./тест_сцрипт5.сх

Садржај скрипте можете проверити помоћу команде 'мачка' као:

# мачка тест_сцрипт5.сх

Решење 3: Коришћење команде 'дос2уник.еке'

У Виндовс / ДОС текстуалним датотекама, нови ред је комбинација повратка носача (\ р), а затим увлачења линија (\ н). У Мац-у (пре Мац ОС Кс), прекид линије користио је једноставан повратак носача (\ р). Уник / Линук и Мац ОС Кс користе преломе редова Феед Феед (\ н). Ако користите Цигвин, неће успети да обради скрипте које су направили ДОС / Виндовс и старији Мац због додатног знака Повратак кочије (\ р).

Коришћење наредбе 'дос2уник.еке'

Овде можете направити наредбу 'дос2уник.еке' која ће претворити скрипту у исправан формат, а затим је можете извршити без икаквих проблема.

Да бисте закључили, потребно је да истражите своје команде и врсту платформе коју користите и да се уверите да не постоје одступања. Будући да не можемо да покријемо сваку могућност, имали бисте идеју какве грешке могу да се појаве и како да их исправите.