Korjaus: Syntaksivirhe odottamattoman tunnuksen lähellä ((& lsquo;

Virheilmoituksen syntaksivirhe odottamattoman tunnuksen lähellä ((' esiintyy Unix-tyyppisessä ympäristössä, Cygwin, ja Windowsin komentoriviliittymässä. Tämä virhe todennäköisesti käynnistyy, kun yrität suorittaa komentosarjan komentosarjan, jota muokattiin tai luotu vanhemmissa DOS / Windows- tai Mac-järjestelmissä.

Syntaksivirhe odottamattoman tunnuksen lähellä ((')

Tämä virhesanoma ilmestyy myös, kun kirjoitat komentoja Linux-komentoriville jokapäiväisiin tehtäviin, kuten tiedostojen kopioimiseen manuaalisesti jne. Tärkeimmät syyt tähän virheilmoitukseen johtuvat joko huonosta syntaksista tai käyttöjärjestelmän ongelmasta toisen järjestelmän komentojen tulkinnassa / kuori.

Mikä aiheuttaa syntaksivirheen lähellä odottamatonta tunnusta `('?

Syyt tähän virheilmoitukseen ovat hyvin erilaisia, eikä niitä voida luetella yhdessä artikkelissa, koska tuhannet syntaksimahdollisuudet menevät pieleen komentoja suoritettaessa. Tärkeimmät syyt virheeseen ovat:

  • Virheellinen syntaksia suoritettaessa komentoja kummallakin alustalla. Joko et käytä komentoa oikein tai olet kirjoittanut väärän syntaksin.
  • Kuori ei ole yhteensopiva Unix / DOS-järjestelmien kanssa.
  • Bash-komentosarjan komentosarjan suorittaminen toisesta lähteestä aiheuttaa ongelmia .

Oletamme tässä artikkelissa, että tunnet koodauksen perusteet ja sinulla on käsitys siitä, mitä olet tekemässä. Jos olet aloittelija, on parasta, että noudatat perusteellisia ohjeita kielestä / komennosta, jota yrität suorittaa. Olet todennäköisesti tehnyt virheen jossakin syntaksissa.

Ratkaisu 1: Kommenttien syntaksin ja muodon tarkistaminen

Ensimmäinen ja tärkein syy, miksi saatat kokea tämän virhesanoman, on virheellinen syntaksisi koodissasi tai et noudata komentojen tarkkaa muotoa. Jokaisella komennolla on ennalta määritetty muoto, jonka näet sen dokumentaatiossa. Useat parametrit ovat valinnaisia ​​ja muut pakollisia.

Lisäksi on kiinnitettävä erityistä huomiota ylimääräiseen tilaan , lainausmerkkien käyttöön ja pakollisiin parametreihin. Jos jokin niistä puuttuu tai on ilmoitettu virheellisesti, et voi suorittaa koodiasi.

Esimerkiksi seuraavan koodin sijaan

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

Sinun on suoritettava se nimellä

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

Varmista myös, että suoritat komennot / shell-komentosarjan oikein, jos se ulottuu usealle riville.

Parametrityypin vuoksi kaksoislainausmerkit ovat välttämättömiä. Ylimääräinen tila voi myös pilata koodisi ja pakottaa virheilmoituksen. Varmista, että tarkistat suorittamasi komennon viralliset asiakirjat ja näet, onko siellä ongelmia.

Ratkaisu 2: Shell-komentosarjan vianmääritys

Jos käytät lähdekoodijärjestelmää, joka toimii lähdekoodijärjestelmässä, mutta palauttaa virheen kohteessa, voit suorittaa komentosarjan vianmäärityksen tarkistamalla suorituksen aikana tallennetut muuttujat ja nähdäksesi, mikä aiheuttaa ongelman. Tämä on hyvin yleinen syy, koska useissa tapauksissa kuori yrittää tulkita tulostamattoman merkin.

Yritä suorittaa komentotulkki parametrilla 'vx'. Tämä näyttää meille, mitä komentoja suoritetaan ja mitkä arvot on tallennettu komentosarjaan. Täältä löydät vianmäärityksen ja diagnosoida, mikä menee pieleen.

Suorita komentosarja esimerkiksi terminaalissa sisällyttämällä 'vx' seuraavasti:

# sh -vx ./test_script5.sh

Voit tarkistaa komentosarjan sisällön 'cat' -komennolla seuraavasti:

# kissa test_script5.sh

Ratkaisu 3: Käytä 'dos2unix.exe' -komentoa

Windows / DOS-tekstitiedostoissa uusi rivi on yhdistelmä rivinvaihtoa (\ r) ja rivinvaihtoa (\ n). Macissa (ennen Mac OS X: ää) rivinvaihdossa käytettiin yksinkertaista rivinvaihtoa (\ r). Unix / Linux ja Mac OS X käyttävät rivinvaihtoa (\ n). Jos käytät Cygwinia, se ei pysty käsittelemään DOS: n / Windowsin ja vanhemman Macin tekemiä komentosarjoja ylimääräisen Carriage Return (\ r) -merkin takia.

Käyttämällä 'dos2unix.exe' -komentoa

Täällä voit tehdä 'dos2unix.exe' -komennon, joka muuntaa komentosarjan oikeaan muotoon ja voit sitten suorittaa sen ilman ongelmia.

Lopuksi sinun on tutkittava komentosi ja käyttämäsi alustan tyyppi ja varmistettava, ettei siinä ole eroja. Koska emme voi kattaa kaikkia mahdollisuuksia, sinulla on käsitys, minkälaisia ​​virheitä voi esiintyä ja kuinka ne voidaan korjata.