Phần $
đầu của chuỗi trong:
echo $'Hello World\nThis is a new line'
gây ra các chuỗi thoát được giải thích.
Hướng dẫn tham khảo Bash [nói]
Các từ có dạng $ 'chuỗi' được xử lý đặc biệt. Từ này mở rộng thành chuỗi, với các ký tự thoát dấu gạch chéo ngược được thay thế theo quy định của tiêu chuẩn ANSI C. ..
..
Kết quả mở rộng được trích dẫn một lần, như thể ký hiệu đô la không có mặt.
Nhưng
echo $"Hello World\nThis is a new line"
là hoàn toàn khác nhau. Đây [bài viết] trên miền địa phương cụ dịch nói:
Một chuỗi trích dẫn kép có trước ký hiệu đô la ('$') sẽ khiến chuỗi được dịch theo ngôn ngữ hiện tại. Nếu miền địa phương hiện tại là C hoặc POSIX, ký hiệu đô la sẽ bị bỏ qua. Nếu chuỗi được dịch và thay thế, thay thế được trích dẫn kép.
Lưu ý: IIRC cả $'string'
và $"string"
có thể không tìm thấy sự hỗ trợ giữa các hệ vỏ khác nhau. Không chỉ những người từ các hệ vỏ khác nhìn vào họ với sự tò mò mà còn tranh luận về việc liệu điều này có thể tránh được đối với tính di động của tập lệnh hay không.