Oprava: Chyba syntaxe blízko neočakávaného tokenu `('



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Chybové hlásenie syntaktická chyba v blízkosti neočakávaného tokenu `(„ sa vyskytuje v prostredí typu Unix, Cygwin, a v rozhraní príkazového riadku vo Windows. Táto chyba sa s najväčšou pravdepodobnosťou spustí, keď sa pokúsite spustiť shell skript, ktorý bol upravený alebo vytvorený v starších systémoch DOS / Windows alebo Mac.



Chyba syntaxe blízko neočakávaného tokenu `(

Chyba syntaxe v blízkosti neočakávaného tokenu `('



Toto chybové hlásenie sa objaví aj pri zadávaní príkazov do príkazového riadku systému Linux pre každodenné úlohy, ako je napríklad ručné kopírovanie súborov atď. Hlavné chybové hlásenie sa vyskytuje buď kvôli zlej syntaxi, alebo kvôli problémom OS pri interpretácii príkazov iného systému / škrupina.



Čo spôsobuje syntaxovú chybu v blízkosti neočakávaného tokenu `(‘?

Dôvody tohto chybového hlásenia sú veľmi rozmanité a nemožno ich uviesť v jednom článku, pretože pri vykonávaní príkazov existujú tisíce možností nesprávnej syntaxe. Hlavné dôvody tejto chyby sú:

  • Zlá syntax pri vykonávaní ľubovoľného príkazu na ktorejkoľvek platforme. Buď príkaz nepoužívate správne, alebo ste zadali nesprávnu syntax.
  • Škrupina nie je kompatibilný medzi systémami Unix / DOS.
  • So spustením skriptu bash shell sú problémy iný zdroj .

V tomto článku predpokladáme, že ovládate základy programovania a máte predstavu o tom, čo robíte. Ak ste začiatočník, najlepšie je podstúpiť podrobné návody jazyka / príkazu, ktoré sa pokúšate vykonať. Pravdepodobne ste sa pomýlili v nejakej syntaxi.

Riešenie 1: Kontrola syntaxe a formátu príkazov

Prvým a najdôležitejším dôvodom, prečo sa môže vyskytnúť táto chybová správa, je nesprávna syntax v kóde alebo nedodržiavanie presného formátu príkazov. Každý príkaz má preddefinovaný formát, ktorý je uvedený v jeho dokumentácii. Niektoré parametre sú voliteľné, iné sú povinné.



Ďalej je potrebné venovať zvýšenú pozornosť priestor navyše , Použitie úvodzovky a povinné požadované parametre. Ak niektorý z nich chýba alebo bol uvedený nesprávne, nebudete môcť vykonať svoj kód.

Napríklad namiesto nasledujúceho kódu

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

Musíte to vykonať ako

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

Tiež sa uistite, že správne vykonávate svoj príkazový / shellový skript, ak má niekoľko riadkov.

Z dôvodu typu parametra sú potrebné úvodzovky. Dodatočný priestor by tiež mohol zničiť váš kód a vynútiť si chybové hlásenie. Nezabudnite skontrolovať úradná dokumentácia príkazu, ktorý vykonávate, a zistite, či tam nie je problém.

Riešenie 2: Riešenie problémov s shell skriptom

Ak používate shell skript, ktorý pracuje v zdrojovom systéme, ale vracia chybu v cieli, môžete problém vyriešiť skriptom skontrolovaním premenných, ktoré sú uložené počas vykonávania, a potom zistiť, čo spôsobuje problém. Toto je veľmi častá príčina, pretože v niekoľkých prípadoch sa shell pokúša interpretovať netlačiteľný znak.

Skúste spustiť shell s parametrom ‘vx’. To nám ukáže, aké príkazy sa spúšťajú a aké hodnoty sú uložené v skripte. Prostredníctvom tohto nástroja môžete riešiť a diagnostikovať, čo sa zhoršuje.

Napríklad vykonajte skript v termináli po zahrnutí reťazca „vx“ ako:

# sh -vx ./test_script5.sh

Obsah skriptu môžete skontrolovať pomocou príkazu „cat“ ako:

# cat test_script5.sh

Riešenie 3: Použitie príkazu „dos2unix.exe“

V textových súboroch Windows / DOS je nový riadok kombináciou znaku Carriage Return ( r), za ktorým nasleduje riadok ( n). V systéme Mac (pred operačným systémom Mac OS X) sa na zalomenie riadku používal jednoduchý návrat vozíka (Carriage Return). Unix / Linux a Mac OS X používajú zalomenie riadkov Line Feed ( n). Ak používate Cygwin, zlyhá spracovanie skriptov vytvorených v systéme DOS / Windows a starších počítačoch Mac z dôvodu zvláštneho znaku Carriage Return ( r).

Použitím

Pomocou príkazu „dos2unix.exe“

Tu môžete vytvoriť príkaz „dos2unix.exe“, ktorý prevedie skript do správneho formátu a potom ho môžete bez problémov vykonať.

Na záver je potrebné preskúmať vaše príkazy a typ platformy, ktorú používate, a ubezpečiť sa, že neexistujú nezrovnalosti. Pretože nemôžeme pokryť všetky možnosti, mali by ste predstavu, aké druhy chýb sa môžu vyskytnúť a ako ich opraviť.

3 minúty prečítané