Oprava: Chyba syntaxe poblíž neočekávaného tokenu `(& lsquo;

Chyba syntaxe chybové zprávy poblíž neočekávaného tokenu `('se vyskytuje v prostředí Unixového typu, Cygwin a v rozhraní příkazového řádku v systému Windows. Tato chyba bude pravděpodobně spuštěna při pokusu o spuštění skriptu, který byl upraven nebo vytvořeno ve starších systémech DOS / Windows nebo Mac.

Chyba syntaxe poblíž neočekávaného tokenu `('

Tato chybová zpráva se projeví také při zadávání příkazů do příkazového řádku systému Linux pro každodenní úkoly, jako je ruční kopírování souborů atd. Hlavní důvod, proč se tato chybová zpráva objeví, je buď kvůli špatné syntaxi, nebo problému OS při interpretaci příkazů jiného systému / skořápka.

Co způsobuje chybu syntaxe poblíž neočekávaného tokenu `('?

Důvody této chybové zprávy jsou velmi různorodé a nelze je uvést v jednom článku, protože při provádění příkazů existují tisíce možností nesprávné syntaxe. Hlavní důvody této chyby jsou:

  • Špatná syntaxe při provádění libovolného příkazu na kterékoli platformě. Buď příkaz nepoužíváte správně, nebo jste zadali nesprávnou syntaxi.
  • Shell není kompatibilní mezi systémy Unix / DOS.
  • Existují problémy se spuštěním skriptu prostředí bash z jiného zdroje .

V tomto článku předpokládáme, že znáte základy kódování a máte představu o tom, co děláte. Pokud jste začátečník, je nejlepší, abyste se řídili podrobnými návody jazyka / příkazu, které se pokoušíte provést. Pravděpodobně jste udělali chybu v nějaké syntaxi.

Řešení 1: Kontrola syntaxe a formátu příkazů

Prvním a nejdůležitějším důvodem, proč se může zobrazit tato chybová zpráva, je špatná syntaxe v kódu nebo nedodržování přesného formátu příkazů. Každý příkaz má předdefinovaný formát, který můžete vidět v jeho dokumentaci. Některé parametry jsou volitelné, jiné povinné.

Dále je třeba věnovat zvláštní pozornost většímu prostoru , použití uvozovek a požadovaným povinným parametrům. Pokud některý z nich chybí nebo byl deklarován nesprávně, nebudete moci svůj kód spustit.

Například místo následujícího kódu

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

Musíte to provést jako

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

Také se ujistěte, že správně provádíte skripty příkazů / prostředí, pokud překlenuje několik řádků.

Z důvodu typu parametru jsou nutné uvozovky. Další prostor může také zničit váš kód a vynutit chybovou zprávu. Nezapomeňte zkontrolovat oficiální dokumentaci prováděného příkazu a zjistit, zda tam není problém.

Řešení 2: Řešení potíží s shell skriptem

Pokud používáte shell skript, který pracuje ve zdrojovém systému, ale vrací chybu v cíli, můžete tento skript vyřešit pomocí kontroly proměnných, které jsou uloženy během provádění, a poté zjistit, co je příčinou problému. Toto je velmi častá příčina, protože v několika případech se shell pokouší interpretovat netisknutelný znak.

Zkuste spustit shell s parametrem 'vx'. To nám ukáže, jaké příkazy jsou spuštěny a jaké hodnoty jsou uloženy ve skriptu. Prostřednictvím tohoto místa můžete řešit a diagnostikovat, co se děje špatně.

Například proveďte skript v terminálu po přidání 'vx' jako:

# sh -vx ./test_script5.sh

Obsah skriptu můžete zkontrolovat pomocí příkazu 'cat' jako:

# cat test_script5.sh

Řešení 3: Použití příkazu 'dos2unix.exe'

V textových souborech Windows / DOS je nový řádek kombinací Carriage Return (\ r), za kterým následuje Line Feed (\ n). V systému Mac (před Mac OS X) používal konec řádku jednoduchý Carriage Return (). Unix / Linux a Mac OS X používají zalomení řádků Line Feed (\ n). Pokud používáte Cygwin, nepodaří se mu zpracovat skripty vytvořené v systému DOS / Windows a starších počítačích Mac z důvodu zvláštního znaku Carriage Return (\ r).

Pomocí příkazu 'dos2unix.exe'

Zde můžete vytvořit příkaz 'dos2unix.exe', který převede skript do správného formátu a poté jej můžete bez problémů spustit.

Na závěr je třeba prozkoumat vaše příkazy a typ platformy, kterou používáte, a ujistit se, že zde nejsou žádné nesrovnalosti. Protože nemůžeme pokrýt všechny možnosti, měli byste představu, jaké druhy chyb se mohou vyskytnout a jak je opravit.

Doporučená

Oprava: Minecraft neodpovídá
Co je aplikace pro registraci zařízení digitální televize a měla by být odstraněna?
Co je FileRepMalware a měli byste jej odebrat