bash:意外标记‘(’附近有语法错误

bash:意外标记‘(’附近有语法错误

我正在尝试通过 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 `('

为什么会出现这个错误以及该错误的解决方案是什么?

答案1

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

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

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

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

答案2

这是因为括号。您需要像这样转义它们:

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

现在它应该可以工作了。

答案3

我的与未转义的括号无关,而与已经用与函数相同的名称定义的别名有关。

一个文件中的别名:

alias foo="echo do something"

在另一个函数中:

foo() {
    # Do something else
}

这两个文件均由我提供~/.bashrc,但却给出了毫无帮助的错误信息:

syntax error near unexpected token (

相关内容