Reg*_*ser 26 bash scripts wget
我正在尝试通过 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 `('
Run Code Online (Sandbox Code Playgroud)
为什么会出现该错误,解决方案是什么?
Rad*_*anu 28
在这种情况下(以及一般情况下),您应该在 URL 周围使用单引号'或双引号":
wget 'http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz'
Run Code Online (Sandbox Code Playgroud)
从现在开始,当您在命令中使用包含括号作为参数的字符串时,您通常应该使用此方法。这是因为括号用于由 shell 进行分组,因此它们不会以任何方式与命令进行通信。所以,bash shell 会给你一个语法错误:
wget 'http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gz'
Run Code Online (Sandbox Code Playgroud)
And*_*y J 12
我的与未转义的括号无关,与已经定义为与函数同名的别名有关。
一个文件中的别名:
alias foo="echo do something"
Run Code Online (Sandbox Code Playgroud)
在另一个函数中:
foo() {
# Do something else
}
Run Code Online (Sandbox Code Playgroud)
这两个文件均来自 my ~/.bashrc,给了我无用的错误消息:
syntax error near unexpected token (
Run Code Online (Sandbox Code Playgroud)
cha*_*aos 10
这是因为括号。你需要像这样逃避他们:
wget http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64\(stable\)_deb.tar.gz
Run Code Online (Sandbox Code Playgroud)
现在它应该可以工作了。
| 归档时间: |
|
| 查看次数: |
294669 次 |
| 最近记录: |