我正在嘗試透過 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
}
這兩份文件均來自 my ~/.bashrc
,給了我無用的錯誤訊息:
syntax error near unexpected token (