Cách đơn giản để làm điều đó là sử dụng các trích dẫn đơn '…'
xung quanh chuỗi. Các trích dẫn đơn phân định một chuỗi ký tự, vì vậy bạn có thể đặt bất cứ thứ gì giữa chúng trừ một trích dẫn '
. Để chèn một trích dẫn trong chuỗi, sử dụng chuỗi bốn ký tự '\''
(trích dẫn đơn, dấu gạch chéo ngược, trích dẫn đơn, trích dẫn đơn).
Về mặt kỹ thuật, không có cách nào để đặt một trích dẫn bên trong một chữ được trích dẫn. Tuy nhiên, nghĩa đen liên tiếp chỉ tốt như một chữ duy nhất. 'foo'\''bar'
được phân tích thành
- nghĩa đen
foo
- các ký tự chữ trích dẫn dấu gạch chéo ngược
'
- nghĩa đen
bar
Điều này có nghĩa là đó '\''
là một cách để thoát khỏi một trích dẫn trong một nghĩa đen được trích dẫn.
Lưu ý rằng print
lệnh ksh thực hiện mở rộng dấu gạch chéo ngược. Thêm -r
tùy chọn để tránh điều này. Nó sẽ không làm tổn thương bạn vì không có dấu gạch chéo ngược trong chuỗi bạn muốn in, nhưng sẽ tốt hơn khi sử dụng -r
, trong trường hợp dấu gạch chéo ngược được thêm vào trong quá trình bảo trì.
print -r -- 'clock=$(prtconf -s | awk '\''{print $4,$5}'\'')' > test.txt
Ngoài ra, bạn có thể sử dụng phương thức POSIX để in một chuỗi theo nghĩa đen với một dòng mới ở cuối:
printf '%s\n' 'clock=$(prtconf -s | awk '\''{print $4,$5}'\'')' > test.txt
clock=$(prtconf -s | awk '{print $4,$5}')
biểu thức trongawk
tuyên bố?