Popravak: Sintaksna pogreška blizu neočekivanog tokena `('

Pogreška sintakse poruke o pogrešci blizu neočekivanog tokena `(' javlja se u okruženju tipa Unix, Cygwin i u sučelju naredbene linije u sustavu Windows. Ova će se pogreška najvjerojatnije pokrenuti kada pokušate pokrenuti skriptu ljuske koja je bila uređena ili stvoreni u starijim DOS / Windows ili Mac sustavima.

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

Ova poruka o pogrešci pojavljuje se i kada unosite naredbe u naredbeni redak Linuxa za svakodnevne zadatke, poput ručnog kopiranja datoteka itd. Glavni razlozi zbog kojih se javlja ova poruka pogreške su ili zbog loše sintakse ili problema OS-a u interpretaciji naredbi drugog sustava / ljuska.

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

Razlozi ove poruke o pogrešci vrlo su raznoliki i ne mogu se navesti u jednom članku, jer postoji tisuće mogućnosti da sintaksa pođe po zlu prilikom izvršavanja naredbi. Temeljni razlozi ove pogreške su:

  • Loša sintaksa prilikom izvršavanja bilo koje naredbe na bilo kojoj platformi. Ili naredbu ne upotrebljavate pravilno ili ste unijeli pogrešnu sintaksu.
  • Školjka nije kompatibilna između Unix / DOS sustava.
  • Postoje problemi pri pokretanju skripte bash shell iz drugog izvora .

U ovom ćemo članku pretpostaviti da znate osnove kodiranja i imate ideju što radite. Ako ste početnik, najbolje je da pratite detaljne udžbenike jezika / naredbe koji pokušavate izvršiti. Vjerojatno ste pogriješili u nekoj sintaksi.

1. rješenje: Provjera sintakse i formata naredbi

Prvi i najvažniji razlog zašto biste mogli doživjeti ovu poruku o pogrešci je loša sintaksa u vašem kodu ili ako ne slijedite točan format naredbi. Svaka naredba ima unaprijed definirani format koji možete vidjeti u njenoj dokumentaciji. Nekoliko je parametara izborno, a ostali su obvezni.

Nadalje, potrebno je posebno paziti na dodatni prostor, korištenje dvostrukih navodnika i obavezne 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 provjerite jeste li pravilno izvršavali svoje naredbe / skriptu ljuske ako se proteže u nekoliko redaka.

Zbog vrste parametara potrebne su dvostruke navodnice. Dodatni prostor također vam može upropastiti kôd i natjerati poruku o pogrešci. Obavezno provjerite službenu dokumentaciju naredbe koju izvršavate i vidite ima li problema tamo.

2. rješenje: Rješavanje problema sa skriptu ljuske

Ako koristite skriptu ljuske koja radi u izvornom sustavu, ali vraća pogrešku u cilj, možete riješiti skriptu provjerom varijabli koje su pohranjene tijekom izvršenja, a zatim pogledajte što uzrokuje problem. To je vrlo čest uzrok, jer u nekoliko slučajeva ljuska pokušava interpretirati neprimjetan lik.

Pokušajte pokrenuti ljusku s parametrom "vx". To će nam pokazati koje se naredbe pokreću i koje su vrijednosti pohranjene u skriptu. Kroz ovdje možete otkloniti i dijagnosticirati što ide po zlu.

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

 # sh -vx ./test_script5.sh 

Sadržaj skripte možete provjeriti pomoću naredbe 'cat' kao:

 # mačka test_script5.sh 

3. rješenje: Upotreba naredbe 'dos2unix.exe'

U tekstualnim datotekama Windows / DOS, novi je redak kombinacija Povratak prijevoza (\ r), nakon čega slijedi Feed (\ n). U Macu (prije Mac OS X), prijelaz retka koristio je jednostavan Carriage Return (\ r). Unix / Linux i Mac OS X koriste prijelome linija (\ n). Ako koristite Cygwin, neće obraditi skripte koje su napravili DOS / Windows i stariji Mac zbog dodatnog znaka Carriage Return (\ r).

Pomoću naredbe 'dos2unix.exe'

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

Zaključno, trebate istražiti svoje naredbe i vrstu platforme koju koristite i uvjeriti se da nema odstupanja. Budući da ne možemo pokriti svaku mogućnost, imali biste ideju kakve se pogreške mogu pojaviti i kako ih ispraviti.

Zanimljivi Članci