Fix: Syntaksfeil nær uventet token `(& lsquo;

Feilmeldingen syntax error nær uventet token `(' forekommer i et Unix-basert miljø, Cygwin, og i kommandolinjegrensesnittet i Windows Denne feilen vil mest sannsynlig bli utløst. Når du prøver å kjøre et shell script som ble redigert eller opprettet i eldre DOS / Windows- eller Mac-systemer.

Syntaksfeil nær uventet token `('

Denne feilmeldingen dukker også opp når du skriver inn kommandoer i Linux-kommandolinjen for hverdagslige oppgaver som å kopiere filer manuelt osv. Hovedårsakene til at denne feilmeldingen oppstår er enten på grunn av dårlig syntaks eller problemet med operativsystemet når det gjelder å tolke et annet systems kommandoer / skall.

Hva forårsaker syntaksfeil nær uventet token `('?

Årsakene til denne feilmeldingen er svært forskjellige og kan ikke vises i en artikkel, da det er tusenvis av muligheter for syntaks som går galt når du utfører kommandoer. Hovedårsakene til denne feilen er:

  • Dårlig syntaks når du utfører en kommando i begge plattformene. Enten bruker du ikke kommandoen riktig eller har angitt feil syntaks.
  • Skallet er ikke kompatibelt mellom Unix / DOS-systemer.
  • Det er problemer som kjører bash shell-skriptet fra en annen kilde .

I denne artikkelen antar vi at du kjenner det grunnleggende ved koding og har en ide om hva du gjør. Hvis du er nybegynner, er det best at du følger grundige veiledninger om språket / kommandoen du prøver å utføre. Du har sannsynligvis gjort en feil med noen syntaks.

Løsning 1: Kontrollere syntaks og format for kommandoer

Den første og viktigste grunnen til at du kan oppleve denne feilmeldingen, er feil syntaks i koden din, eller du følger ikke det nøyaktige formatet på kommandoene. Hver kommando har et forhåndsdefinert format som du kan se i dokumentasjonen. Flere parametere er valgfrie som andre er obligatoriske.

Videre bør det tas ekstra hensyn til ekstra plass , bruk av doble anførselstegn og obligatoriske parametere som kreves. Hvis noen av dem mangler eller er erklært feil, vil du ikke kunne utføre koden din.

For eksempel i stedet for følgende kode

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

Du må utføre det som

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

Sørg også for at du kjører kommandoene / skallskriptet riktig hvis det strekker seg over flere linjer.

På grunn av parametertypen er doble anførselstegn nødvendige. En ekstra plass kan også ødelegge koden din og tvinge feilmeldingen. Sørg for at du sjekker den offisielle dokumentasjonen for kommandoen du utfører, og ser om det er et problem der.

Løsning 2: Feilsøke skallskriptet ditt

Hvis du bruker et skallskript som fungerer i kildesystemet, men returnerer en feil i målet, kan du feilsøke skriptet ved å sjekke variablene som er lagret under utførelsen, og deretter se hva som forårsaker problemet. Dette er en veldig vanlig årsak, da skallet i flere tilfeller prøver å tolke en ikke-utskrivbar karakter.

Prøv å kjøre skallet med parameteren 'vx'. Dette vil vise oss hvilke kommandoer som kjøres og hvilke verdier som er lagret i skriptet. Her kan du feilsøke og diagnostisere hva som går galt.

For eksempel, utfør skriptet i terminalen etter å ha inkludert 'vx' som:

# sh -vx ./test_script5.sh

Du kan sjekke innholdet i skriptet ved hjelp av kommandoen 'cat' som:

# cat test_script5.sh

Løsning 3: Bruk kommandoen 'dos2unix.exe'

I Windows / DOS-tekstfiler er en ny linje en kombinasjon av en vognretur (\ r) etterfulgt av en linjemating (\ n). I Mac (før Mac OS X) brukte et linjeskift en enkel vognretur (\ r). Unix / Linux og Mac OS X bruker linjeskift (\ n). Hvis du bruker Cygwin, vil det mislykkes i å behandle skriptene laget av DOS / Windows og eldre Mac på grunn av den ekstra Carriage Return (\ r) karakteren.

Bruk kommandoen 'dos2unix.exe'

Her kan du lage kommandoen 'dos2unix.exe' som konverterer skriptet til riktig format, og deretter kan du utføre det uten problemer.

For å konkludere, må du undersøke kommandoene og plattformtypen du bruker, og sørg for at det ikke er noen avvik. Siden vi ikke kan dekke hver eneste mulighet, vil du ha en ide om hva slags feil som kan oppstå og hvordan du løser dem.

Anbefalt

Fix: Minecraft svarer ikke
Hva er Digital TV Tuner Device Application Application og bør det fjernes?
Hva er FileRepMalware og bør du fjerne det