bash: beklenmedik belirtecin yanında sözdizimi hatası `('


18

Hata alıyorum üzerinden flareget indirme yöneticisini indirmeye çalışıyorum

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

Neden bu hata geliyor ve bunun çözümü nedir?


Şifre korumalı bir dosyayı açmaya çalışırken aynı hatayı aldım. Parolanın içinde bir parantez vardı. Hatayı önlemek için hem çift hem de tek tırnak kullanmak zorunda kaldım. Örnek: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse Marks

Yanıtlar:


22

Bu durumda (ve genel olarak) URL çevresinde tek 'veya çift tırnak kullanmalısınız ":

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

Bundan sonra, komutta bağımsız değişken olarak parantez içeren bir dize kullandığınızda bu yöntemi genel olarak kullanmalısınız. Bunun nedeni parantezlerin hiçbir komutla hiçbir şekilde iletilmeyecek şekilde kabuk tarafından gruplandırılması için kullanılmasıdır. Yani, bash kabuğu size bir sözdizimi hatası verecektir:

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

6

Parantez yüzünden. Onlardan böyle kaçmanız gerekiyor:

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

Şimdi çalışmalı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.