Để giải thích những gì đang xảy ra với dấu nháy đơn đã thoát của bạn, chúng tôi sẽ kiểm tra ví dụ thứ hai của bạn (cũng xem các trích dẫn đơn hoặc trích dẫn mạnh ):
$ echo '\'Hello World\''
> # expects you to continue input
Ở đây, bạn đã để lại báo giá treo, như bạn đã nêu. Bây giờ cắt kết thúc và thay đổi nó thành:
v v v
$ echo '\'Hello World # Echo two strings: '\' and 'Hello World'.
\Hello World ^
Chuỗi con "Hello World" không được trích dẫn ở đây, nhưng nó hoạt động như thể nó được trích dẫn mạnh mẽ. Sử dụng ví dụ của bạn một lần nữa, cắt kết thúc khác nhau lần này:
vv v (plain apostrophe)
$ echo '\'Hello World\' # Will echo: '\' and 'Hello World''
\Hello World' ^^ # Note that the trailing ' char is backslash escaped.
Chuỗi con "Hello World" một lần nữa hoạt động như thể nó được trích dẫn mạnh mẽ, chỉ có dấu nháy đơn được thêm vào (thoát, do đó không còn một trích dẫn nào) ở cuối.
Khi một trích dẫn khác được thêm vào cuối (ví dụ ban đầu của bạn), chuỗi sẽ bị treo và chờ đợi một trích dẫn gần.
echo \''Hello World'\'