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 ~/.bashrc
und gaben mir die nicht hilfreiche Fehlermeldung:
syntax error near unexpected token (