Bên trong dấu ngoặc đơn, vỏ mở rộng không có gì. Thay vào đó, đặt chúng trong dấu ngoặc kép:
curl -u <my-api-token>: \
-X POST https://api.pushbullet.com/v2/pushes \
--header 'Content-Type: application/json' \
--data-binary '{"type": "note", "title": "'"$TR_TORRENT_NAME"'", \
"body": "'"$TR_TORRENT_NAME completed"'."}'
Hãy xem xét cách thức hoạt động của nó bằng cách xem xét:
$ TR_TORRENT_NAME=MyTorrent
$ echo '{"type": "note", "title": "'"$TR_TORRENT_NAME"'", "body": "'"$TR_TORRENT_NAME completed"'."}'
{"type": "note", "title": "MyTorrent", "body": "MyTorrent completed."}
Khi biến shell xuất hiện, nó luôn nằm trong dấu ngoặc kép. Do đó, nó được mở rộng đúng cách.
Trích dẫn như thế này là một chút tinh tế. Chúng tôi có các chuỗi trích dẫn đơn có chứa các trích dẫn kép dưới dạng các ký tự và bên cạnh các chuỗi trích dẫn kép. Để hiểu rõ hơn về điều này, hãy lấy đoạn này làm ví dụ:
"'"$TR_TORRENT_NAME"'"
Lần lượt lấy từng nhân vật:
"
là một ký tự trích dẫn kép theo nghĩa đen nằm trong một chuỗi trích dẫn đơn. (Để đơn giản, phần đầu của chuỗi này không được hiển thị trong đoạn này.)
'
đóng một chuỗi trích dẫn duy nhất.
"
mở một chuỗi trích dẫn kép.
$TR_TORRENT_NAME
là một biến shell được mở rộng bên trong dấu ngoặc kép.
"
đóng chuỗi trích dẫn kép.
'
mở một chuỗi trích dẫn đơn mới.
"
đặt một ký tự trích dẫn kép bên trong chuỗi trích dẫn đơn.