Trong phần 3.1.2.3 có tiêu đề Báo giá kép, hướng dẫn Bash nói:
Việc đóng các ký tự trong dấu ngoặc kép ('"') sẽ giữ nguyên giá trị bằng chữ của tất cả các ký tự trong dấu ngoặc kép, ngoại trừ '$', '`', '\' và khi bật mở rộng lịch sử, '!'.
Hiện tại tôi quan tâm đến trích dẫn duy nhất ( '
).
Ý nghĩa đặc biệt của nó, được mô tả trong phần trước, phần 3.1.2.2 là:
Các ký tự kèm theo trong dấu ngoặc đơn (
'
) sẽ giữ nguyên giá trị bằng chữ của mỗi ký tự trong dấu ngoặc kép. Một trích dẫn có thể không xảy ra giữa các trích dẫn đơn, ngay cả khi trước dấu gạch chéo ngược.
Kết hợp hai giải trình,
echo "'$a'"
trong đó biến a
không được xác định (do đó $a
= chuỗi null), nên in $a
trên màn hình, vì ''
nó có ý nghĩa đặc biệt bên trong, sẽ che chắn $
cho việc giải thích đặc biệt. Thay vào đó, nó in ''
. Tại sao vậy?
’, ‘\’, and, when history expansion is enabled, ‘!’." in the manual. But now reading it again I realized the second character is not single quote, ("'") but tilde ("
"). I' m biết ơn vì phản hồi nhanh chóng của bạn. Cảm ơn bạn!