Estou tentando baixar o gerenciador de download 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á ocorrendo e qual é a solução para isso?
Responder1
Você deve usar aspas simples '
ou duplas "
ao redor 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 este método em geral ao usar uma string que contém parênteses como argumento em um comando. Isso ocorre porque os parênteses são usados para agrupamento pelo shell, de forma que não sejam comunicados de forma alguma a um comando. Portanto, o shell bash apresentará um erro de sintaxe:
$ echo some (parentheses)
bash: syntax error near unexpected token `('
$ echo 'some (parentheses)'
some (parentheses)
Responder2
É 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.
Responder3
O meu não teve nada a ver com colchetes sem escape e tudo a ver com um alias já definido com o mesmo nome da função.
Alias em um arquivo:
alias foo="echo do something"
Função em outra:
foo() {
# Do something else
}
Ambos os arquivos foram originados por meu ~/.bashrc
, me dando uma mensagem de erro inútil:
syntax error near unexpected token (