Solució: error de sintaxi a prop del testimoni inesperat `('



Proveu El Nostre Instrument Per Eliminar Problemes

El missatge d'error error de sintaxi prop d'un testimoni inesperat '(' es produeix en un entorn de tipus Unix, Cygwin, i a la interfície de línia d'ordres del Windows. Probablement es produirà aquest error quan intenteu executar un script d'intèrpret d'ordres que s'hagi editat o creat en sistemes DOS / Windows o Mac antics.



Error de sintaxi a prop d

Error de sintaxi a prop d'un testimoni inesperat '('



Aquest missatge d'error també apareix quan s'introdueixen ordres a la línia d'ordres de Linux per a tasques quotidianes, com copiar fitxers manualment, etc. Les principals raons per les quals es produeix aquest missatge d'error són a causa de la sintaxi incorrecta o del problema del SO en interpretar les ordres d'un altre sistema / petxina.



Què causa l’error de sintaxi prop d’un testimoni inesperat `(‘?

Els motius d’aquest missatge d’error són molt diversos i no es poden enumerar en un article, ja que hi ha milers de possibilitats de sintaxi que funcionen malament quan s’executen ordres. Els principals motius d’aquest error són:

  • Sintaxi incorrecta en executar qualsevol ordre en qualsevol de les dues plataformes. O bé no utilitzeu l'ordre correctament o bé heu introduït una sintaxi incorrecta.
  • La closca no ho és compatible entre sistemes Unix / DOS.
  • Hi ha problemes amb l'execució de l'script bash shell una altra font .

En aquest article, suposem que coneixeu els conceptes bàsics de la codificació i que teniu una idea del que esteu fent. Si sou principiant, és millor que seguiu tutorials en profunditat de l'idioma / ordre que esteu intentant executar. Probablement s’hagi equivocat de certa sintaxi.

Solució 1: comprovació de la sintaxi i el format de les ordres

La primera i més important raó per la qual pot experimentar aquest missatge d'error és la de la sintaxi incorrecta del codi o que no seguiu el format exacte de les ordres. Cada ordre té un format predefinit que podeu veure a la seva documentació. Hi ha diversos paràmetres opcionals, altres obligatoris.



A més, s’ha de tenir molta cura espai addicional , ús de cometes dobles , i la obligatori paràmetres necessaris. Si falta algun d’ells o s’ha declarat incorrectament, no podreu executar el vostre codi.

Per exemple, en lloc del codi següent

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

Cal executar-lo com

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

A més, assegureu-vos que executeu correctament les ordres / script de l'intèrpret d'ordres si abasta diverses línies.

A causa del tipus de paràmetre, les cometes dobles són necessàries. Un espai addicional també pot arruïnar el codi i forçar el missatge d'error. Assegureu-vos que comproveu el documentació oficial de l'ordre que esteu executant i veure si hi ha algun problema.

Solució 2: resolució de problemes de l'script de shell

Si utilitzeu un script de l'intèrpret d'ordres que funciona al sistema d'origen però que retorna un error a l'objectiu, podeu resoldre l'script comprovant les variables que s'emmagatzemen durant l'execució i, a continuació, vegeu què causa el problema. Aquesta és una causa molt comuna, ja que en diversos casos, l'intèrpret d'ordres intenta interpretar un personatge no imprimible.

Proveu d'executar l'intèrpret d'ordres amb el paràmetre 'vx'. Això ens mostrarà quines ordres s'estan executant i quins valors s'emmagatzemen a l'script. A través d’aquí podeu resoldre problemes i diagnosticar els problemes.

Per exemple, executeu l'script al terminal després d'incloure 'vx' com:

# sh -vx ./test_script5.sh

Podeu comprovar el contingut de l'script amb l'ordre 'gat' com:

# cat test_script5.sh

Solució 3: mitjançant l’ordre ‘dos2unix.exe’

Als fitxers de text de Windows / DOS, una línia nova és una combinació d'un retorn de transport ( r) seguit d'un feed de línia ( n). A Mac (abans de Mac OS X), un salt de línia utilitzava un simple retorn de carro ( r). Unix / Linux i Mac OS X utilitzen salts de línia Feed de línia ( n). Si utilitzeu Cygwin, no processarà els scripts fets per DOS / Windows i Mac anteriors a causa del caràcter extra de retorn de carro ( r).

Utilitzant

Utilitzant l’ordre ‘dos2unix.exe’

Aquí podeu fer l’ordre ‘dos2unix.exe’ que convertirà l’escriptura al format correcte i, després, podeu executar-lo sense cap problema.

Per concloure, necessiteu investigar les vostres ordres i el tipus de plataforma que utilitzeu i assegureu-vos que no hi hagi discrepàncies. Com que no podem cobrir totes i cadascuna de les possibilitats, tindríeu una idea del tipus d’errors que es poden produir i de com solucionar-los.

3 minuts de lectura