Correggi l'errore di sintassi di Bash vicino al token imprevisto
Pubblicato: 2022-05-30La codifica nel Linux Bash Terminal è diventata una pratica predominante nel settore della codifica. Gli ingegneri del software e gli studenti che imparano il linguaggio di programmazione incontrano vari errori. Se hai visto ripetutamente errori come Errore di sintassi vicino al token imprevisto '(' o Errore di sintassi Bash vicino al token imprevisto, puoi provare a fare affidamento sui metodi descritti nell'articolo e diventare un programmatore esperto. Leggi i metodi descritti nell'articolo nel ordine descritto e correggere gli errori nelle righe di comando sul file.
Contenuti
- Come correggere l'errore di sintassi di Bash vicino a un token imprevisto
- Metodo 1: correzione manuale degli errori in ciascuna riga di comando
- Passaggio I: leggi il contenuto del file
- Passaggio II: rimuovere le interruzioni di riga di Windows
- Passaggio III: imposta le autorizzazioni sul file appena creato
- Passaggio IV: formattare il codice nel file
- Metodo 2: riscrivi il codice
- Metodo 3: utilizzare il comando Dos2unix.exe
Come correggere l'errore di sintassi di Bash vicino a un token imprevisto
Linux Bash è un interprete della riga di comando per il sistema basato su Linux ed è un sostituto di Bourne Shell o sh. I file sono denominati utilizzando il formato .sh nello scripting di Linux Bash. Se ci sono problemi di formattazione nel codice nello script della shell, potresti riscontrare un errore di sintassi. Se l'errore è vicino al carattere ( , la shell ti chiederà l'errore nella riga e visualizzerà l'errore nella riga corrispondente. Poiché Linux Bash è un interprete, la riga con l'errore ti verrà restituita in il Terminale e interromperà la scansione del resto dei comandi nello script.Quindi, è necessario correggere l'errore nella riga di comando particolare e passare alla successiva per correggere l'errore del token imprevisto nello script della shell.Le cause della sintassi l'errore vicino al token imprevisto in Linux Bash è elencato di seguito in questa sezione come di seguito:
- Codifica con sequenze di escape : se hai scritto i codici nello script Bash, le sequenze di escape o le virgolette nello script potrebbero causare errori. Le sequenze di escape e le virgolette devono essere scritte nel formato corretto per correggere l'errore.
- Sintassi errata nel file di codifica : la sintassi nel codice potrebbe fornire l'errore di sintassi se il comando è scritto con una sintassi errata, ad esempio la modifica dell'ordine dei loop.
- Utilizzo errato del comando: se non si utilizza il comando correttamente, ad esempio un'assegnazione di valori errata, è possibile che si verifichi un errore di sintassi.
- Sistema operativo incompatibile nei sistemi : se la shell per lo script di codifica non è compatibile tra i sistemi Unix e DOS, è possibile che si verifichi un errore imprevisto.
- Problemi nello script della shell bash: i problemi in esecuzione nello script della shell bash sul file copiato da un altro sistema possono dare l'errore di token imprevisto.
Si consideri un file denominato example.sh creato nello script Bash di Linux con le seguenti righe di comando a scopo esplicativo. Il file di esempio ha la possibilità di errori di sintassi e include tutti i possibili comandi che possono essere utilizzati nello script della shell.
str= 'Prima riga di comando di '(file di esempio)' nello script' str= [(1,2),(3,4)] if[ $giorno == “lun” ] allora eco "lun" altro eco "no mon" fi per VARIABILE in {0..2}; poi fare eco comando1; comando eco2; comando eco3; comando eco4; fatto mentre vero; do if [ $ giorno == “lun” ]; poi eco “mon”; altrimenti fa eco "non mon"; fatto; fi
Metodo 1: correzione manuale degli errori in ciascuna riga di comando
Il primo metodo per correggere gli errori consiste nel correggere manualmente l'errore di sintassi in ciascuna riga di comando nello script. I passaggi per risolvere gli errori di sintassi vicino al token imprevisto nelle righe di comando sono discussi in questa sezione. Il processo per correggere l'errore di token imprevisto nel Terminale è descritto di seguito. Eseguire il file nel Terminale digitando il comando ./example.sh e premendo il tasto Invio .
2. Prendere nota delle righe che presentano l'errore di token imprevisto nelle righe di comando sul risultato seguente.
3. Correggere l'errore in ogni riga seguendo singolarmente i metodi discussi di seguito e salvando il file.
4. Eseguire nuovamente il file dopo le modifiche e verificare se l'errore di sintassi è stato risolto sul file.
Leggi anche: Come installare Linux Bash Shell su Windows 10
Passaggio I: leggi il contenuto del file
Il primo passo per risolvere l'errore di sintassi nelle righe di comando è leggere il file nel Terminale. SE ci sono problemi con il file, potresti non essere in grado di visualizzare il file. La pratica regolare di visualizzazione del file consiste nell'eseguire il file utilizzando il comando ./example.sh ma non è possibile modificare il contenuto del file. Le opzioni per visualizzare il contenuto del file e modificare le righe di comando per correggere l'errore di sintassi vicino al token imprevisto '(' sono discusse di seguito.
Opzione 1: tramite comando CAT
La prima opzione consiste nell'usare il comando cat per visualizzare il file nello script della shell. Leggi il contenuto del file con l'errore token imprevisto usando il comando cat digitando il comando cat –v example.sh nel Terminale.
Nota 1: example.sh viene utilizzato a scopo esplicativo ed è necessario digitare il nome del file con l'errore di token imprevisto.
Nota 2: il comando cat –v viene utilizzato per visualizzare tutti i caratteri invisibili che potrebbero rappresentare il ritorno a capo o lo spazio senza interruzioni.
Opzione 2: tramite il comando VX
Se non puoi utilizzare il comando cat, puoi provare a utilizzare il comando vx per visualizzare e modificare i comandi sul file utilizzando il passaggio indicato di seguito. Digita il comando sh –vx ./example.sh nel Terminale per aprire il file.
Opzione 3: tramite od –a Command
3. Se sono presenti alcuni caratteri invisibili nelle righe di comando, è possibile utilizzare il comando od –a per visualizzare il file. Se il contenuto del file non è visibile nel file di codice, puoi provare a leggere il file utilizzando il comando od –a example.sh per modificare il codice.
Passaggio II: rimuovere le interruzioni di riga di Windows
Se sono presenti interruzioni di riga di Windows nello script della shell, è possibile utilizzare i comandi della console per rimuovere le interruzioni di riga e copiare le righe di codice in un nuovo file per correggere l'errore.
Immettere il comando seguente nel Terminale per salvare il contenuto del file in un altro file denominato correctedexample.sh per rimuovere le interruzioni di riga di Windows nello script.
tr –d '\r' <example.sh> correttoexample.sh
Passaggio III: imposta le autorizzazioni sul file appena creato
È necessario impostare l'autorizzazione sul file appena creato per modificare il file in modo che il file possa essere eseguito nella shell. Digita il comando come chmod 755 correctedexample.sh nel Terminale per fornire le autorizzazioni al file ed eseguire il file. Ora puoi visualizzare il file corretto e correggere i problemi di formattazione e correggere l'errore di sintassi vicino al token imprevisto '(' nel file.
Passaggio IV: formattare il codice nel file
Il secondo passaggio consiste nel formattare le righe di codice individualmente e modificare manualmente le righe di comando sul file. Le opzioni per formattare il file per correggere l'errore di sintassi vicino al token imprevisto '(' sono discusse di seguito in questa sezione.
Opzione 1: sostituisci virgolette singole con virgolette doppie
Se si utilizzano le virgolette singole nelle righe di comando, è necessario modificare il comando sostituendo le virgolette singole con le virgolette doppie per correggere l'errore di sintassi. Nel file example.sh , rimuovi le righe di codice che contengono ' e ' o le virgolette singole nel comando e sostituisci le virgolette singole con le virgolette doppie o " e '' . Qui, nel file di esempio, è necessario modificare il codice come str= “Prima riga di comando di “\(file di esempio)\” nello script”
Nota: le virgolette doppie sono necessarie per i comandi del tipo di parametro come str= “[(1,2),(3,4)]” .
Leggi anche: 20 migliori distribuzioni Linux leggere del 2022
Opzione 2: aggiungi $ alle linee di stringa
Se hai aggiunto valori di stringa allo script, devi aggiungere un $ ai valori di stringa per correggere l'errore di sintassi nello script. Aggiungi $ per le righe di comando con i valori di stringa per correggere l'errore imprevisto. Qui, nel file di esempio, cambia la riga di comando come;
str= $ 'Prima riga di comando di '\(file di esempio)\' nello script'
Nota: se si utilizza $ nel valore della stringa, è possibile ignorare la sequenza di escape della barra rovesciata poiché le righe di comando vengono decodificate dallo standard ANSI C. In altre parole, utilizzando un valore $ per stringa, puoi evitare di usare le virgolette doppie invece delle virgolette singole nelle righe di comando.
Opzione 3: converti le schede in spazi
Gli spazi che hai lasciato tra due istruzioni nel comando devono essere spazi anziché tab per correggere l'errore di sintassi nello script. Se ricevi l'errore su Cygwin, puoi provare a convertire le schede nei codici in spazi per correggere l'errore. La riga di comando è indicata di seguito come;
fare eco comando1; comando eco2; comando eco3; comando eco4; fatto
Il comando precedente dovrebbe essere riscritto come mostrato di seguito per correggere l'errore.
fare eco comando1; comando eco2; comando eco3; comando eco4; fatto
Opzione 4: usa i caratteri di escape
Se stai usando un carattere bash, è importante usare un carattere di escape insieme al carattere bash per correggere l'errore di sintassi. Le parentesi o () sono caratteri speciali bash nel file, quindi è necessario utilizzare il carattere di escape o la barra rovesciata nella riga di comando per eseguire l'escape dei caratteri normali per eseguire il comando. Il comando str= 'Prima riga di comando di \'(file di esempio)\' nello script' non darebbe un errore nel Terminale poiché vengono utilizzati i caratteri di escape.
Leggi anche: Come entrare in mezzo a noi su Linux
Opzione 5: usa lo spazio tra i caratteri
Lo script della shell riconosce i comandi e le istruzioni nello script in base ai valori predefiniti. È necessario garantire il corretto utilizzo dello spazio tra i caratteri in modo che la shell possa identificare il comando fornito nello script. Lo spazio è un carattere utilizzato per differenziare due caratteri nella riga di comando. Nel codice, non c'è spazio tra if e [ , che fornisce l'errore del token imprevisto poiché il comando if[ non è identificato dalla shell. Se il codice viene modificato in if [ $ day == “mon” ]; quindi l'errore può essere risolto come comando del bollettino della shell se viene identificato dalla shell.
Opzione 6: utilizzare il separatore di comandi per le istruzioni
I vari comandi nello script della shell devono essere separati in istruzioni affinché il Terminale possa identificare i singoli comandi. È necessario utilizzare un separatore di comandi per correggere l'errore di sintassi in Linux Bash. Le istruzioni nel comando devono essere separate da un separatore di comando come un punto e virgola o un ; o una nuova riga premendo il tasto Invio . Ad esempio, il comando nel codice if [ $ day == “mon” ] deve essere modificato come se [ $ day == “mon” ]; quindi per correggere l'errore. Poiché il punto e virgola viene utilizzato come separatore di comando tra i caratteri [ e poi , è possibile correggere questo errore.
Opzione 7: rimuovi dichiarazioni aggiuntive
A volte, potresti aver aggiunto istruzioni aggiuntive o potresti aver confuso i codici in caso di più loop nidificati. È necessario rimuovere le istruzioni aggiuntive sulle righe di comando per correggere l'errore di sintassi vicino al token imprevisto '(' in Linux Bash. Bash esegue il loop per...fatto o e i costrutti costruttivi se... fi deve essere nella sintassi corretta. Il il file di esempio ha la sintassi errata nel ciclo for ha il termine then utilizzato nell'istruzione if . La modifica del codice come il codice seguente risolverà l'errore del token imprevisto. L'istruzione quindi è un'istruzione aggiuntiva nel codice e rimuove il termine risolverà l'errore.
per VARIABILE in {0..2}; fare eco comando1; comando eco2; comando eco3; comando eco4; fatto
Opzione 8: assicurarsi che l'ordine di chiusura delle dichiarazioni sia corretto
Se si utilizzano molte istruzioni di costruzione nidificate o condizionali nello script della shell, è necessario assicurarsi che i loop siano chiusi nell'ordine in cui sono stati aperti. È possibile utilizzare un nuovo separatore di riga per evitare conflitti con i loop. L'ordine di chiusura dei cicli annidati e delle istruzioni condizionali deve essere corretto e non deve essere modificato. I cicli nel codice mentre sono veri; do if [ $ giorno == “lun” ]; poi eco “mon”; altrimenti fa eco "non mon"; fatto; fi deve essere chiuso nell'ordine corretto. La modifica del codice come mostrato di seguito può correggere l'errore di token imprevisto poiché l'ordine di chiusura delle istruzioni viene corretto.
mentre vero; do if [ $ giorno == “lun” ]; poi eco “mon”; altrimenti fa eco "non mon"; fi; fatto
Leggi anche: Che cos'è un interprete della riga di comando?
Metodo 2: riscrivi il codice
Se hai copiato il codice e incollato in un nuovo file sul Terminale, puoi provare a riscrivere il codice manualmente per correggere l'errore. Gli errori nel codice possono essere corretti se hai scritto il codice senza errori di formato nello script della shell. Questo perché i caratteri nascosti e i problemi di formattazione nell'editor di testo come Microsoft Word, che potresti aver utilizzato per copiare e incollare il codice, potrebbero aver dato l'errore.
Metodo 3: utilizzare il comando Dos2unix.exe
Se stai usando un sistema operativo Unix, puoi scrivere codici con il carattere di avanzamento riga come \n per passare alla riga successiva nel file. Tuttavia, se stai utilizzando un sistema operativo Windows, devi passare alla riga successiva nel codice utilizzando il ritorno a capo e l'avanzamento riga o \r\n nel file. Se esegui il codice scritto nel sistema operativo Windows in Cygwin, potresti ricevere l'errore di sintassi vicino al token imprevisto '('.
Per correggere l'errore, è necessario cancellare i caratteri di ritorno a capo utilizzando lo strumento da riga di comando da DOS a Unix come convertitore di formato file di testo. Digita il seguente comando come dos2unix.exe example.sh nel Terminale e puoi convertire il file nel formato Unix.
Consigliato:
- Come creare un account Telegram su Android
- Correggi l'errore di runtime C++ su Windows 10
- Come eliminare definitivamente l'account Github
- Le 14 migliori schede grafiche per Linux
L'articolo ha discusso i metodi di base per correggere l' errore di sintassi di Bash vicino al token imprevisto '(' nello script. Se stai utilizzando un Bash Linux, puoi utilizzare i metodi spiegati in questa sezione per correggere l'errore di sintassi di Bash vicino al token imprevisto. Se lo fai dopo aver letto l'intero articolo e trovato utile il contenuto, fateci sapere i vostri suggerimenti e domande nella sezione commenti.