bash:意外令牌'('附近的语法错误


18

我正在尝试通过wget下载flareget下载管理器,但出现错误

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

为什么会出现该错误,该如何解决?


尝试解压缩受密码保护的文件时,我收到了相同的错误。密码中带有括号。我最终不得不同时使用双引号和单引号来避免错误。范例: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse Marks

Answers:


22

在这种情况下(通常),您应该在URL周围使用单引号'或双引号"

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

从现在开始,在命令中使用包含括号作为参数的字符串时,通常应该使用此方法。这是因为括号用于外壳程序的分组,因此不会以任何方式将其传递给命令。因此,bash shell将为您提供语法错误:

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

6

这是因为括号。您需要这样逃避它们:

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

现在应该可以了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.