Ispravljeno: Sintaksna pogreška u blizini neočekivanog tokena `(& lsquo;

Sintaksna pogreška poruke o pogrešci u blizini neočekivanog tokena `(' javlja se u okruženju Unix tipa Cygwin i u sučelju naredbenog retka u sustavu Windows. Ova će se pogreška najvjerojatnije pokrenuti kada pokušate pokrenuti skriptu ljuske koja je uređena ili stvorena u starijim DOS / Windows ili Mac sustavima.

Sintaksa Pogreška u blizini neočekivanog tokena `('

Ova poruka o pogrešci pojavljuje se i kad u Linux naredbe unosite naredbe za svakodnevne zadatke kao što je ručno kopiranje datoteka itd. Glavni razlozi zbog kojih se ova poruka pogreške javlja jesu loša sintaksa ili problem OS-a u tumačenju naredbi drugog sustava / ljuska.

Što uzrokuje sintaksnu pogrešku u blizini neočekivanog tokena `('?

Razlozi za ovu poruku o pogrešci vrlo su raznoliki i ne mogu se navesti u jednom članku jer postoje tisuće mogućnosti pogrešne sintakse prilikom izvršavanja naredbi. Osnovni razlozi ove pogreške su:

  • Loša sintaksa pri izvršavanju bilo koje naredbe na bilo kojoj platformi. Ili naredbu ne upotrebljavate ispravno ili ste unijeli pogrešnu sintaksu.
  • Ljuska nije kompatibilna između Unix / DOS sustava.
  • Postoje problemi s pokretanjem skripte bash školjke iz drugog izvora .

U ovom članku pretpostavljamo da znate osnove kodiranja i imate ideju što radite. Ako ste početnik, najbolje je da slijedite detaljne upute za jezik / naredbu koju pokušavate izvršiti. Vjerojatno ste pogriješili u nekoj sintaksi.

Rješenje 1: Provjera sintakse i formata naredbi

Prvi i najvažniji razlog zašto biste mogli doživjeti ovu poruku o pogrešci je pogrešna sintaksa u vašem kodu ili nepoštivanje točnog formata naredbi. Svaka naredba ima unaprijed definirani format koji možete vidjeti u njenoj dokumentaciji. Nekoliko je parametara neobavezno, a ostali su obvezni.

Nadalje, posebno treba paziti na dodatni prostor , upotrebu dvostrukih navodnika i obvezne potrebne parametre. Ako bilo koji od njih nedostaje ili je pogrešno prijavljen, nećete moći izvršiti svoj kôd.

Na primjer, umjesto sljedećeg koda

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

Morate ga izvršiti kao

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

Također se pobrinite da pravilno izvršavate svoje naredbe / skriptu ljuske ako obuhvaća nekoliko redaka.

Zbog vrste parametra neophodni su dvostruki navodnici. Dodatni prostor također može pokvariti vaš kôd i prisiliti na poruku o pogrešci. Obavezno provjerite službenu dokumentaciju naredbe koju izvršavate i provjerite postoji li tamo problem.

Rješenje 2: Rješavanje problema sa skriptom ljuske

Ako koristite skriptu ljuske koja radi u izvornom sustavu, ali vraća grešku u cilju, možete riješiti skriptu provjerom varijabli koje su pohranjene tijekom izvršavanja, a zatim pogledajte što uzrokuje problem. To je vrlo čest uzrok, jer u nekoliko slučajeva ljuska pokušava protumačiti znak koji se ne može ispisati.

Pokušajte pokrenuti ljusku s parametrom 'vx'. To će nam pokazati koje se naredbe izvode i koje su vrijednosti pohranjene u skripti. Ovdje možete riješiti probleme i dijagnosticirati što ide po zlu.

Na primjer, izvršite skriptu u terminalu nakon uključivanja 'vx' kao:

# sh -vx ./test_script5.sh

Sadržaj skripte možete provjeriti pomoću naredbe 'mačka' kao:

# mačka test_script5.sh

Rješenje 3: Korištenje naredbe 'dos2unix.exe'

U Windows / DOS tekstualnim datotekama novi je redak kombinacija povratka prijevoza (\ r) nakon kojeg slijedi unos retka (\ n). Na Macu (prije Mac OS X), prijelom retka koristio je jednostavan povratak nosača (\ r). Unix / Linux i Mac OS X koriste prelome redaka (\ n). Ako koristite Cygwin, neće uspjeti obraditi skripte DOS-a / Windows i starijeg Mac računala zbog dodatnog znaka Povratak kočije (\ r).

Korištenjem naredbe 'dos2unix.exe'

Ovdje možete napraviti naredbu 'dos2unix.exe' koja će pretvoriti skriptu u ispravan format, a zatim je možete izvršiti bez ikakvih problema.

Da biste zaključili, trebate istražiti svoje naredbe i vrstu platforme koju koristite i osigurati da ne bude odstupanja. Budući da ne možemo pokriti svaku mogućnost, imali biste ideju kakve se pogreške mogu dogoditi i kako ih ispraviti.

Preporučeno

Popravak: Minecraft ne reagira
Što je aplikacija za registraciju uređaja za digitalni TV tuner i treba li je ukloniti?
Što je FileRepMalware i biste li ga trebali ukloniti