printf% q nên trích dẫn một chuỗi. Tuy nhiên, khi được thực thi thành một tập lệnh, nó sẽ xóa các dấu cách.
lệnh này:
printf %q "hello world"
kết quả đầu ra:
hello\ world
đó là chính xác.
kịch bản này:
#!/bin/bash
str="hello world"
printf %q $str
kết quả đầu ra:
helloworld
đó là sai.
Nếu hành vi như vậy thực sự được mong đợi, thay thế nào tồn tại trong tập lệnh để trích dẫn chuỗi có chứa bất kỳ ký tự nào theo cách nó có thể được dịch ngược lại thành chương trình gốc?
Cảm ơn.
phần mềm: GNU bash, phiên bản 4.1.5 (1) -release (i486-pc-linux-gnu)
sửa: Solved, cảm ơn.
Removed tiền tố 'SOLVED' trong tiêu đề của bạn bài đăng. Trong StackOverflow.com, bạn không đánh dấu một vấn đề được giải quyết bằng cách thêm vào đầu đề với 'SOLVED' Bạn chấp nhận câu trả lời hoặc bạn đăng câu trả lời của riêng mình và chấp nhận câu trả lời bằng cách nhấp vào dấu chọn bên dưới các nút biểu quyết gần câu trả lời cho bạn. –