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

Chyba syntaxe chybovej správy v blízkosti neočakávaného tokenu `('sa vyskytuje v prostredí Unixového typu, Cygwin a v rozhraní príkazového riadku v systéme 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 `('

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ému 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.
  • Plášť nie je kompatibilný medzi systémami Unix / DOS.
  • Pri spustení skriptu bash shell z iného zdroja nastali problémy .

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 toto chybové hlásenie môže vyskytnúť, 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ť zvýšenému priestoru , použitiu dvojitých úvodzoviek a požadovaným povinným parametrom. Ak niektorý z nich chýba alebo bol deklarovaný 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ť oficiálnu dokumentáciu príkazu, ktorý vykonávate, a zistiť, č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 vyriešiť problém so skriptom kontrolou 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: Pomocou 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).

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 spustiť.

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é chyby sa môžu vyskytnúť a ako ich opraviť.

Odporúčaná

Oprava: Minecraft neodpovedá
Čo je aplikácia na registráciu zariadenia digitálneho televízneho prijímača a mala by byť odstránená?
Čo je FileRepMalware a mali by ste ho odstrániť