bash: erro de sintaxe próximo ao token inesperado `('


18

Estou tentando fazer o download do gerenciador de downloads flareget via wget, recebo um erro

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

Por que esse erro está chegando e qual é a solução para isso?


Eu recebi o mesmo erro ao tentar descompactar um arquivo protegido por senha. A senha tinha parênteses. Acabei tendo que usar aspas duplas e simples para evitar o erro. Exemplo: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse Marks

Respostas:


22

Você deve usar aspas simples 'ou duplas em "torno do URL neste caso (e em geral):

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

A partir de agora, você deve usar esse método em geral quando usar uma sequência que contenha parênteses como argumento em um comando. Isso ocorre porque os parênteses são usados ​​para agrupar pelo shell, de forma que eles não sejam comunicados de forma alguma a um comando. Portanto, o shell bash fornecerá um erro de sintaxe:

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

6

É por causa dos colchetes. Você precisa escapar deles assim:

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

Agora deve funcionar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.