bash: Syntaxfehler in der Nähe von unerwartetem Token `('

bash: Syntaxfehler in der Nähe von unerwartetem Token `('

Ich versuche, Flareget Download Manager über Wget herunterzuladen. Ich erhalte eine Fehlermeldung

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

Warum tritt dieser Fehler auf und was ist die Lösung dafür?

Antwort1

In diesem Fall (und generell) sollten Sie einfache 'oder doppelte Anführungszeichen um die URL verwenden:"

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

Ab jetzt sollten Sie diese Methode generell verwenden, wenn Sie in einem Befehl einen String verwenden, der Klammern als Argument enthält. Das liegt daran, dass Klammern von der Shell zur Gruppierung verwendet werden, sodass sie in keiner Weise an einen Befehl übermittelt werden. Die Bash-Shell gibt Ihnen daher einen Syntaxfehler aus:

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

Antwort2

Das liegt an den Klammern. Sie müssen sie folgendermaßen maskieren:

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

Jetzt sollte es klappen.

Antwort3

Meins hatte nichts mit nicht maskierten Klammern zu tun, sondern einzig und allein mit einem bereits definierten Alias ​​mit dem gleichen Namen wie die Funktion.

Alias ​​in einer Datei:

alias foo="echo do something"

Funktion in einem anderen:

foo() {
    # Do something else
}

Beide Dateien wurden von mir bezogen ~/.bashrcund gaben mir die nicht hilfreiche Fehlermeldung:

syntax error near unexpected token (

verwandte Informationen