bash: error de sintaxis cerca del token inesperado `('

bash: error de sintaxis cerca del token inesperado `('

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 (

información relacionada