Поправка: Синтакса грешка близу неочекиваног токена `('
Грешка синтаксе поруке поруке о грешци близу неочекиваног токена `(' јавља се у окружењу типа Уник, Цигвин и у интерфејсу наредбеног ретка у Виндовс-у. Ова грешка ће се највероватније покренути када покушате да покренете скрипту љуске која је измењена или створен у старијим ДОС / Виндовс или Мац системима.
Ова порука о грешци појављује се и када уносите команде у Линук командну линију за свакодневне задатке, као што су ручно копирање датотека итд. Главни разлози због којих се јавља ова порука грешке су или због лоше синтаксе или проблема ОС-а у интерпретацији наредби другог система / шкољка.
Шта узрокује синтапску грешку у близини неочекиваног токена `('?
Разлози за ову поруку о грешци су врло разнолики и не могу се навести у једном чланку, јер постоји на хиљаде могућности да синтакса пође по злу приликом извршавања наредби. Основни разлози за ову грешку су:
- Лоша синтакса приликом извршавања било које наредбе на било којој платформи. Или не користите правилно наредбу или сте унели погрешну синтаксу.
- Шкољка није компатибилна између Уник / ДОС система.
- Постоје проблеми при покретању скрипте басх схелл из другог извора .
У овом чланку претпостављамо да знате основе кодирања и имате идеју шта радите. Ако сте почетник, најбоље је да следите детаљне уџбенике језика / команде који покушавате да извршите. Вероватно сте погрешили неку синтаксу.
Решење 1: Провера синтаксе и формата наредби
Први и најважнији разлог због којег бисте могли да доживите ову поруку грешке је лоша синтакса у вашем коду или ако не следите тачан формат наредби. Свака наредба има унапред дефинисан формат који можете видети у њеној документацији. Неколико је параметара факултативних, а остали су обавезни.
Надаље, треба водити рачуна о додатном простору, кориштењу двоструких наводника и обавезним параметрима. Ако било који од њих недостаје или је погрешно пријављен, нећете моћи да извршите свој код.
На пример, уместо следећег кода
[мицом7] # ./цтопо.сх ум_тест1 [(1, 2), (2, 1)]
Морате га извршити као
[мицом7] # ./цтопо.сх ум_тест1 "[(1, 2), (2, 1)]"
Такође, проверите да ли правилно извршавате наредбе / скрипту љуске ако се протеже у неколико редака.
Због типа параметра, двоструки наводници су неопходни. Додатни простор такође може да вам упропасти код и натера поруку о грешци. Обавезно проверите службену документацију наредбе коју извршавате и видите да ли постоји проблем.
2. решење: Решавање проблема са скрипту љуске
Ако користите скрипту љуске која ради у изворном систему, али враћа грешку у циљ, можете да решите скрипту тако што ћете проверити променљиве које су сачуване током извршења и видети шта узрокује проблем. То је врло чест узрок, јер у неколико случајева љуска покушава да протумачи непримјењив карактер.
Покушајте покренути љуску с параметром 'вк'. Ово ће нам показати које се команде покрећу и које вредности се чувају у скрипту. Овде можете отклонити и дијагностицирати шта иде по злу.
На примјер, извршите скрипту у терминалу након што укључите 'вк' као:
# сх -вк ./тест_сцрипт5.сх
Садржај скрипте можете провјерити помоћу наредбе 'цат' као:
# мачка тест_сцрипт5.сх
3. решење: Коришћење команде 'дос2уник.еке'
У текстуалним датотекама Виндовс / ДОС, нови ред је комбинација Царриаге Ретурн (\ р), а затим Лине Феед (\ н). У Мацу (прије Мац ОС Кс), прекид линије користио је једноставан Царриаге Ретурн (\ р). Уник / Линук и Мац ОС Кс користе прекиде линија (\ н). Ако користите Цигвин, неће успети да обради скрипте које су направили ДОС / Виндовс и старији Мац због додатног знака Царриаге Ретурн (\ р).
Овде можете направити наредбу 'дос2уник.еке' која ће скрипту претворити у исправан формат и затим је можете извршити без икаквих проблема.
За закључак, потребно је да истражите своје команде и врсту платформе коју користите и уверите се да нема одступања. Пошто не можемо покрити сваку могућност, имали бисте идеју о томе какве се грешке могу појавити и како их исправити.