Fix: Syntaksfejl nær uventet token `(‘



Prøv Vores Instrument Til At Fjerne Problemer

Fejlmeddelelsen syntaksfejl nær uventet token `(‘ opstår i et Unix-miljø, Cygwin og i kommandolinjegrænsefladen i Windows. Denne fejl udløses sandsynligvis, når du prøver at køre et shell-script, der blev redigeret eller oprettet i ældre DOS / Windows- eller Mac-systemer.



Syntaksfejl nær uventet token `(

Syntaksfejl nær uventet token `(‘



Denne fejlmeddelelse vises også, når du indtaster kommandoer i Linux-kommandolinjen til hverdagsopgaver såsom kopiering af filer manuelt osv. Hovedårsagerne til, at denne fejlmeddelelse opstår, er enten på grund af dårlig syntaks eller OS-problemet ved fortolkning af et andet systems kommandoer / skal.



Hvad forårsager syntaksfejl nær uventet token `(‘?

Årsagerne til denne fejlmeddelelse er meget forskellige og kan ikke vises i en artikel, da der er tusindvis af muligheder for syntaks, der går galt, når kommandoer udføres. Hovedårsagerne til denne fejl er:

  • Dårlig syntaks når du udfører en kommando på begge platforme. Enten bruger du ikke kommandoen korrekt eller har indtastet den forkerte syntaks.
  • Skallen er ikke kompatibel mellem Unix / DOS-systemer.
  • Der er problemer, der kører bash shell-scriptet fra en anden kilde .

I denne artikel antager vi, at du kender det grundlæggende ved kodning og har en idé om, hvad du laver. Hvis du er nybegynder, er det bedst, at du følger dybdegående vejledninger i det sprog / kommando, du prøver at udføre. Du har sandsynligvis lavet en fejl af en eller anden syntaks.

Løsning 1: Kontrol af syntaks og format for kommandoer

Den første og fremmest grund til, at du måske oplever denne fejlmeddelelse, er, at der er dårlig syntaks i din kode, eller at du ikke følger det nøjagtige format for kommandoerne. Hver kommando har et foruddefineret format, som du kan se i dens dokumentation. Flere parametre er valgfri, som andre er obligatoriske.



Derudover skal ekstra forsigtighed tages i betragtning ekstra plads , anvendelse af dobbelt citater , og obligatorisk nødvendige parametre. Hvis nogen af ​​dem mangler eller er blevet erklæret forkert, kan du ikke udføre din kode.

For eksempel i stedet for følgende kode

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

Du skal udføre det som

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

Sørg også for, at du udfører dine kommandoer / shell-script korrekt, hvis det spænder over flere linjer.

På grund af parametertypen er de dobbelte anførselstegn nødvendige. Et ekstra mellemrum kan også ødelægge din kode og tvinge fejlmeddelelsen. Sørg for at tjekke officiel dokumentation af den kommando, du udfører, og se om der er et problem der.

Løsning 2: Fejlfinding af dit shell-script

Hvis du bruger et shell-script, der fungerer i kildesystemet, men returnerer en fejl i målet, kan du foretage fejlfinding på scriptet ved at kontrollere de variabler, der er gemt under udførelsen, og derefter se, hvad der forårsager problemet. Dette er en meget almindelig årsag, da skallen i flere tilfælde forsøger at fortolke en karakter, der ikke kan udskrives.

Prøv at køre skallen med parameteren 'vx'. Dette viser os, hvilke kommandoer der køres, og hvilke værdier der er gemt i scriptet. Herfra kan du foretage fejlfinding og diagnosticere, hvad der går galt.

For eksempel, udfør scriptet i terminalen efter at have inkluderet 'vx' som:

# sh -vx ./test_script5.sh

Du kan kontrollere indholdet af scriptet ved hjælp af kommandoen 'cat' som:

# kat test_script5.sh

Løsning 3: Brug kommandoen ‘dos2unix.exe’

I Windows / DOS-tekstfiler er en ny linje en kombination af en Carriage Return ( r) efterfulgt af en Line Feed ( n). I Mac (før Mac OS X) brugte en linjeskift en simpel vognretur ( r). Unix / Linux og Mac OS X bruger Line Feed ( n) linjeskift. Hvis du bruger Cygwin, behandler det ikke de scripts, der er lavet af DOS / Windows og ældre Mac på grund af den ekstra Carriage Return ( r) karakter.

Ved brug af

Brug kommandoen ‘dos2unix.exe’

Her kan du lave kommandoen ‘dos2unix.exe’, der konverterer scriptet til det rigtige format, og så kan du udføre det uden problemer.

For at afslutte skal du undersøge dine kommandoer og type platform, du bruger, og sørg for, at der ikke er nogen uoverensstemmelser. Da vi ikke kan dække hver eneste mulighed, ville du have en idé om, hvilke slags fejl der kan opstå, og hvordan man løser dem.

3 minutter læst