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