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?

Usuário Registrado
fonte
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)
Radu Rădeanu
fonte
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.

caos
fonte