bash: lỗi cú pháp gần mã thông báo bất ngờ `('


18

Tôi đang cố tải xuống trình quản lý tải xuống flareget qua wget Tôi gặp lỗi

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

Tại sao lỗi đó lại đến và giải pháp cho điều đó là gì?


Tôi đã nhận được lỗi tương tự trong khi cố gắng giải nén một tập tin được bảo vệ bằng mật khẩu. Mật khẩu có dấu ngoặc đơn trong đó. Cuối cùng tôi đã phải sử dụng cả dấu ngoặc kép và dấu ngoặc đơn để tránh lỗi. Ví dụ: mypass="'HWNevtQW9o2s)f'" unzip -P $mypass myfile
Jesse Marks

Câu trả lời:


22

Bạn nên sử dụng dấu ngoặc đơn 'hoặc dấu ngoặc kép "quanh URL trong trường hợp này (và nói chung):

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

Từ giờ, bạn nên sử dụng phương thức này nói chung khi bạn sử dụng một chuỗi chứa dấu ngoặc đơn làm đối số trong một lệnh. Đó là bởi vì dấu ngoặc đơn được sử dụng để nhóm bởi shell sao cho chúng không được truyền đạt theo bất kỳ cách nào tới một lệnh. Vì vậy, shell bash sẽ cung cấp cho bạn một lỗi cú pháp:

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

6

Đó là vì dấu ngoặc. Bạn cần phải thoát khỏi chúng như thế này:

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

Bây giờ nó sẽ làm việc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.