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
}

這兩份文件均來自 my ~/.bashrc,給了我無用的錯誤訊息:

syntax error near unexpected token (

相關內容