Tại sao bash đóng gói lỗi cú pháp cả với dấu trọng âm và dấu nháy đơn?


14

Khi bash báo cáo lỗi cú pháp, nó sẽ đóng gói văn bản đã đưa ra lỗi cú pháp cả với dấu trọng âm và dấu nháy đơn, như sau : `...'. Bất cứ ý tưởng tại sao?

Đây là một ví dụ:

$ bash -c "echo error()"
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `echo error()'

Điều này không phổ biến lắm; Tuy nhiên, tôi chỉ tò mò, đây không phải là một vấn đề thực sự.

Chỉnh sửa: điều này trở nên kỳ lạ hơn với các thông điệp tối nghĩa như thế này:

-bash: unexpected EOF while looking for matching ``'


Câu trả lời:


8

Trong một số phông chữ nhất định, các dấu ngoặc kép đó sẽ xuất hiện dưới dạng các cặp dấu ngoặc đơn cuộn tròn. Đó là passé trong thế giới Unicode hiện nay , nhưng mã và thực hành sản xuất lấy được trích dẫn như vậy từ một thời gian trước khi Unicode, hoặc trước khi phổ biến rộng rãi của nó.


2
Nhiều người có thể muốn biết về chủ đề này: cl.cam.ac.uk/~mgk25/ucs/quotes.html
mr.spuratic 28/03

1
+1 để sử dụng "passe '" trong câu trả lời kỹ thuật. Bravo, thưa ngài!
Bruce Ediger
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.