Bash: синтаксическая ошибка рядом с неожиданным токеном `('

Я пытаюсь загрузить менеджер загрузок flareget через wgetI и получаю ошибку

wget  http://www.flareget.com/files/flareget/debs/amd64/flareget_2.3-24_amd64(stable)_deb.tar.gzbash: syntax error near unexpected token `('

Почему возникает эта ошибка и каково решение для этого?

Вы должны использовать одинарные кавычки ' или двойные кавычки " вокруг URL-адреса в этом случае (и в целом):

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

С этого момента вы должны использовать этот метод в целом, когда используете строку, содержащую круглые скобки, в качестве аргумента в команде. Это связано с тем, что круглые скобки используются для группировки оболочкой таким образом, что они никоим образом не передаются команде. Итак, оболочка bash выдаст вам синтаксическую ошибку:

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

Это из-за скобок. Тебе нужно сбежать от них вот так:

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

Теперь это должно сработать.

Мой не имел ничего общего с неэкранированными скобками, а все, что связано с функцией bash, определенной дважды.

В одном файле:

foo() {    # Do something}

В другом файле:

foo() {    # Do something else}

И обе эти функции были получены из моего ~.bashrc, что дало мне бесполезное сообщение об ошибке:

syntax error near unexpected token (

Я получил ту же ошибку при попытке распаковать файл, защищенный паролем. В пароле стояла круглая скобка. В итоге мне пришлось использовать как двойные, так и одинарные кавычки, чтобы избежать ошибки. Пример:

mypass="'HWNevtQW9o2s)f'"

распаковать архив -P $mypass myfile