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


18

Sto cercando di scaricare il download manager di flareget tramite wget ottengo un errore

wget  http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz
bash: syntax error near unexpected token `('

Perché sta arrivando quell'errore e qual è la soluzione per questo?


Ho ricevuto lo stesso errore durante il tentativo di decomprimere un file protetto da password. La password conteneva una parentesi. Ho finito per usare le virgolette doppie e singole per evitare l'errore. Esempio: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse segna il

Risposte:


22

In questo caso dovresti usare virgolette singole 'o doppie "tra l'URL (e in generale):

wget  'http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz'

Da adesso, dovresti usare questo metodo in generale quando usi una stringa che contiene parentesi come argomento in un comando. Questo perché le parentesi vengono utilizzate per il raggruppamento dalla shell in modo tale da non essere comunicate in alcun modo a un comando. Quindi, la shell bash ti darà un errore di sintassi:

$ echo some (parentheses)
bash: syntax error near unexpected token `('
$ echo 'some (parentheses)'
some (parentheses)

6

È a causa delle parentesi. Devi fuggire in questo modo:

wget  http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64\(stable\)_deb.tar.gz

Ora dovrebbe funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.