Correzione: errore di sintassi vicino al token imprevisto `('

L'errore di sintassi del messaggio di errore vicino al token imprevisto "(" si verifica in un ambiente di tipo Unix, Cygwin e nell'interfaccia della riga di comando in Windows. Questo errore verrà probabilmente generato quando si tenta di eseguire uno script della shell che è stato modificato o creato in sistemi DOS / Windows o Mac precedenti.

Errore di sintassi vicino token imprevisto `('

Questo messaggio di errore emerge anche quando si immettono comandi nella riga di comando di Linux per attività quotidiane come la copia manuale di file ecc. conchiglia.

Cosa causa l'errore di sintassi vicino al token imprevisto `('?

Le ragioni di questo messaggio di errore sono molto diverse e non possono essere elencate in un articolo poiché ci sono migliaia di possibilità che la sintassi vada storta durante l'esecuzione dei comandi. Le ragioni principali di questo errore sono:

  • Sintassi errata durante l'esecuzione di qualsiasi comando in entrambe le piattaforme. O non stai usando il comando correttamente o hai inserito la sintassi sbagliata.
  • La shell non è compatibile tra i sistemi Unix / DOS.
  • Esistono problemi nell'esecuzione dello script della shell bash da un'altra fonte .

In questo articolo, supponiamo che tu conosca le basi del codice e che tu abbia un'idea di cosa stai facendo. Se sei un principiante, è meglio seguire esercitazioni approfondite sulla lingua / comando che si sta tentando di eseguire. Probabilmente hai commesso un errore di sintassi.

Soluzione 1: verifica della sintassi e del formato dei comandi

Il primo e principale motivo per cui potresti riscontrare questo messaggio di errore è quello di una sintassi errata nel tuo codice o di non seguire l'esatto formato dei comandi. Ogni comando ha un formato predefinito che puoi vedere nella sua documentazione. Numerosi parametri sono facoltativi, altri invece obbligatori.

Inoltre, è necessario prestare particolare attenzione allo spazio aggiuntivo, all'uso di virgolette doppie e ai parametri obbligatori richiesti. Se qualcuno di questi manca o è stato dichiarato in modo errato, non sarà possibile eseguire il codice.

Ad esempio, invece del seguente codice

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

È necessario eseguirlo come

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

Inoltre, assicurati di eseguire correttamente i tuoi comandi / script di shell se si estende su più righe.

A causa del tipo di parametro, sono necessarie le virgolette doppie. Uno spazio aggiuntivo potrebbe anche rovinare il codice e forzare il messaggio di errore. Assicurati di controllare la documentazione ufficiale del comando che stai eseguendo e vedere se c'è un problema lì.

Soluzione 2: risoluzione dei problemi relativi allo script della shell

Se si utilizza uno script di shell che funziona nel sistema di origine ma restituisce un errore nella destinazione, è possibile risolvere lo script controllando le variabili archiviate durante l'esecuzione e quindi vedere cosa sta causando il problema. Questa è una causa molto comune poiché in molti casi la shell tenta di interpretare un carattere non stampabile.

Prova a eseguire la shell con il parametro "vx". Questo ci mostrerà quali comandi vengono eseguiti e quali valori sono memorizzati nello script. Attraverso qui è possibile risolvere e diagnosticare ciò che non va.

Ad esempio, esegui lo script nel terminale dopo aver incluso 'vx' come:

 # sh -vx ./test_script5.sh 

Puoi controllare il contenuto dello script usando il comando 'cat' come:

 # cat test_script5.sh 

Soluzione 3: utilizzo del comando 'dos2unix.exe'

Nei file di testo Windows / DOS, una nuova riga è una combinazione di un ritorno a capo (\ r) seguito da un avanzamento riga (\ n). In Mac (prima di Mac OS X), un'interruzione di riga utilizzava un semplice ritorno a capo (\ r). Unix / Linux e Mac OS X utilizzano le interruzioni di riga (\ n). Se si utilizza Cygwin, non sarà in grado di elaborare gli script creati da DOS / Windows e dal Mac precedente a causa del carattere aggiuntivo Carriage Return (\ r).

Utilizzando il comando 'dos2unix.exe'

Qui puoi fare il comando 'dos2unix.exe' che convertirà lo script nel formato corretto e quindi potrai eseguirlo senza problemi.

Per concludere, è necessario ricercare i comandi e il tipo di piattaforma che si sta utilizzando e assicurarsi che non vi siano discrepanze. Dal momento che non possiamo coprire ogni singola possibilità, avresti un'idea di quali tipi di errori possono verificarsi e come risolverli.

Articoli Interessanti