Estoy intentando descargar el administrador de descargas flareget a través de wget. Recibo un error.
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 qué aparece ese error y cuál es la solución?
Respuesta1
Debes utilizar comillas simples '
o dobles "
alrededor de la URL en este caso (y en general):
wget 'http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz'
A partir de ahora, deberías utilizar este método en general cuando utilices una cadena que contenga paréntesis como argumento en un comando. Esto se debe a que el shell utiliza paréntesis para agrupar de modo que no se comuniquen de ninguna manera a un comando. Entonces, el shell bash le dará un error de sintaxis:
$ echo some (parentheses)
bash: syntax error near unexpected token `('
$ echo 'some (parentheses)'
some (parentheses)
Respuesta2
Es por los corchetes. Necesitas escapar de ellos así:
wget http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64\(stable\)_deb.tar.gz
Ahora debería funcionar.
Respuesta3
El mío no tenía nada que ver con corchetes sin escape y sí con un alias que ya estaba definido con el mismo nombre que la función.
Alias en un archivo:
alias foo="echo do something"
Función en otra:
foo() {
# Do something else
}
Ambos archivos fueron obtenidos por mi ~/.bashrc
, lo que me da el mensaje de error inútil:
syntax error near unexpected token (