Я пытаюсь загрузить менеджер загрузок 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 `('
Почему возникает эта ошибка и как ее устранить?
решение1
В этом случае (и вообще) следует использовать одинарные '
или двойные кавычки вокруг 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)
решение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
}
Оба этих файла были получены из моего источника ~/.bashrc
, что привело к появлению бесполезного сообщения об ошибке:
syntax error near unexpected token (