Come correggere l'errore "bash: errore di sintassi vicino a un token imprevisto".
Bash (Bourne Again Shell) è un programma a riga di comando che accetta i comandi forniti e li esegue. Prende i comandi Linux direttamente digitati in modo interattivo da una tastiera o da un file di script della shell.
Bash viene utilizzato nei sistemi Linux e Mac per eseguire il sistema ed è la shell predefinita nella maggior parte delle moderne distribuzioni Linux come Ubuntu, Debian, Fedora, Rocky Linux e AlmaLinux per citarne alcune.
Uno degli errori più comuni che gli utenti riscontrano durante l'esecuzione di script o comandi della shell sulla shell bash è "bash: errore di sintassi vicino al token imprevisto '('". Questo potrebbe sembrare un po' confuso e potresti chiederti dove hai sbagliato con l'esecuzione del comando.
-bash errore di sintassi vicino al token imprevisto '(' Errore
L'errore è principalmente attribuito a un'operazione eseguita su un file il cui nome file è racchiuso tra parentesi o parentesi tonde.
Ogni volta che si utilizzano parentesi con nomi di file o negli script di shell, è SEMPRE NECESSARIO eseguire l'escape di esse. In caso contrario, è probabile che si verifichi questo tipo di errore.
In bash, le parentesi o le parentesi tonde sono considerate caratteri speciali e, pertanto, devono essere precedute da un carattere di escape quando si eseguono operazioni sui file come la creazione, la copia, la rimozione e il download di un file.
Facciamo un semplice esempio e simuliamo l'errore. Quando crei un file, ad esempio sample_file(dati).txt
utilizzando il comando touch, ti imbatterai nel seguente messaggio di errore, come mostrato.
$ touch sample_file(data).txt
bash: syntax error near unexpected token `('
Ora cambiamo marcia e controlliamo i modi in cui puoi risolvere l'errore di cui sopra.
Correzione 1: utilizzare una barra rovesciata per eseguire l'escape delle parentesi
Se insisti per avere un nome di file con parentesi, la soluzione è anteporre a ciascuna delle parentesi una barra rovesciata. Questo è popolarmente noto come escape delle parentesi e assume il seguente formato: \( e\).
Il carattere barra rovesciata precede ogni parentesi.
Nel nostro esempio precedente, avremmo creato il nostro file come segue senza problemi.
$ touch sample_file\(data\).txt
Dall'output seguente, puoi vedere che abbiamo creato correttamente il file senza problemi eseguendo l'escape delle parentesi.
Lo stesso principio si applica quando si copia, rimuove e rinomina il file, come mostrato di seguito.
$ cp sample_file\(data\).txt /tmp/
rm sample_file\(data\).txt
Correzione 2: racchiudi il file all'interno di virgolette doppie
L'altra alternativa consiste nel racchiudere l'intero nome del file tra virgolette doppie. Anche questo trucco funzionerà senza problemi.
$ cp "sample_file(data).txt" /tmp
rm "sample_file(data).txt"
L'utilizzo dei metodi di cui sopra ti aiuterà a uscire da questo errore ed eseguire senza problemi operazioni sui tuoi file.
Conclusione
E il gioco è fatto! In questa breve guida, ti abbiamo mostrato come correggere l'errore "bash: errore di sintassi vicino al token inaspettato '('" in Linux. Come hai visto, la soluzione è abbastanza semplice e diretta. Il tuo feedback è il benvenuto.