Fix: Syntaxfel nära oväntat token `('

Felmeddelandets syntaxfel nära oväntat token `(' uppstår i en Unix-miljö, Cygwin och i kommandoradsgränssnittet i Windows. Det här felet kommer troligen att utlöses när du försöker köra ett skalskript som redigerats eller skapad i äldre DOS / Windows eller Mac-system.

Syntaxfel nära oväntat token `('

Det här felmeddelandet dyker också upp när du skriver in kommandon i Linux-kommandoraden för vardagliga uppgifter, till exempel att kopiera filer manuellt etc. De främsta orsakerna till att detta felmeddelande uppstår är antingen på grund av dålig syntax eller OS-problem vid tolkning av ett annat systems kommandon / skal.

Vad orsakar Syntaxfel nära oväntat token `('?

Orsakerna till detta felmeddelande är mycket olika och kan inte listas i en artikel eftersom det finns tusentals möjligheter att syntaxa går fel när man kör kommandon. De viktigaste orsakerna till detta fel är:

  • Dålig syntax vid körning av något kommando i någon av plattformarna. Antingen använder du inte kommandot korrekt eller har angett fel syntax.
  • Skalet är inte kompatibelt mellan Unix / DOS-system.
  • Det finns problem som kör bash shell-skriptet från en annan källa .

I den här artikeln antar vi att du känner till grunderna i kodning och har en uppfattning om vad du gör. Om du är nybörjare är det bäst att du följer djupgående handledning om språket / kommandot som du försöker köra. Du har antagligen gjort ett misstag av någon syntax.

Lösning 1: Kontrollera syntax och format för kommandon

Det första och främsta skälet till att du kan uppleva det här felmeddelandet är det med dålig syntax i din kod eller om du inte följer kommandornas exakta format. Varje kommando har ett fördefinierat format som du kan se i dokumentationen. Flera parametrar är valfria som andra är obligatoriska.

Dessutom bör extra försiktighet vidtas för extra utrymme, användning av dubbla citat och de obligatoriska parametrarna som krävs. Om någon av dem saknas eller har förklarats felaktigt kan du inte köra din kod.

Till exempel istället för följande kod

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

Du måste köra det som

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

Se också till att du kör dina kommandon / skal-skript korrekt om det spänner över flera rader.

På grund av parametertypen är dubbla citat nödvändig. Ett extra utrymme kan också förstöra din kod och tvinga fram felmeddelandet. Se till att du kontrollerar den officiella dokumentationen för kommandot du utför och se om det finns ett problem där.

Lösning 2: Felsökning av skalskriptet

Om du använder ett skalskript som fungerar i källsystemet men returnerar ett fel i målet kan du felsöka skriptet genom att kontrollera variablerna som lagras under körningen och sedan se vad som orsakar problemet. Detta är en mycket vanlig orsak, eftersom skalet i flera fall försöker tolka ett oskrivbart tecken.

Prova att köra skalet med parametern 'vx'. Detta visar oss vilka kommandon som körs och vilka värden som lagras i skriptet. Härifrån kan du felsöka och diagnostisera vad som går fel.

Kör till exempel skriptet i terminalen efter att ha inkluderat 'vx' som:

 # sh -vx ./test_script5.sh 

Du kan kontrollera innehållet i skriptet med kommandot 'cat' som:

 # cat test_script5.sh 

Lösning 3: Använd kommandot 'dos2unix.exe'

I Windows / DOS-textfiler är en ny rad en kombination av en vagnretur (\ r) följt av en radmatning (\ n). I Mac (före Mac OS X) användes en linjeskift en enkel vagnretur (\ r). Unix / Linux och Mac OS X använder linjeavbrott (\ n). Om du använder Cygwin kommer det inte att bearbeta skript som gjorts av DOS / Windows och äldre Mac på grund av den extra karaktärreturen (\ r).

Med kommandot "dos2unix.exe"

Här kan du göra kommandot 'dos2unix.exe' som konverterar skriptet till rätt format och sedan kan du köra det utan problem.

Avslutningsvis måste du undersöka dina kommandon och vilken plattform du använder och se till att det inte finns några avvikelser. Eftersom vi inte kan täcka varje möjlighet skulle du ha en uppfattning om vilken typ av fel som kan uppstå och hur du åtgärdar dem.

Intressanta Artiklar