bash: синтаксическая ошибка около неожиданного токена '('

10

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

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

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

    
задан Registered User 08.11.2013 в 10:27
источник

2 ответа

13

В этом случае (и вообще) вам следует использовать одинарные кавычки ' или двойные кавычки " вокруг 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)
    
ответ дан Radu Rădeanu 08.11.2013 в 10:30
источник
3

Это из-за скобок. Вам нужно избегать их так:

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

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

    
ответ дан chaos 08.11.2013 в 10:29