Bash: Syntaxfehler in der Nähe des unerwarteten Tokens `('

18

Ich versuche, den 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 kommt dieser Fehler und was ist die Lösung dafür?

registrierter Nutzer
quelle
Ich habe den gleichen Fehler erhalten, als ich versucht habe, eine passwortgeschützte Datei zu entpacken. Das Passwort enthielt eine Klammer. Am Ende musste ich sowohl doppelte als auch einfache Anführungszeichen verwenden, um den Fehler zu vermeiden. Beispiel: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse Marks

Antworten:

22

Sie sollten in diesem Fall (und im Allgemeinen) 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 im Allgemeinen verwenden, wenn Sie eine Zeichenfolge verwenden, die Klammern als Argument in einem Befehl enthält. Dies liegt daran, dass Klammern für die Gruppierung durch die Shell verwendet werden, sodass sie in keiner Weise an einen Befehl übermittelt werden. Die Bash-Shell gibt Ihnen also einen Syntaxfehler:

$ echo some (parentheses)
bash: syntax error near unexpected token `('
$ echo 'some (parentheses)'
some (parentheses)
Radu Rădeanu
quelle
6

Es liegt an den Klammern. Sie müssen ihnen wie folgt entkommen:

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

Jetzt sollte es klappen.

Chaos
quelle