Всередині одинарних лапок оболонка нічого не розширює. Розмістіть їх замість подвійних лапок:
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"'."}'
Розберемо, як це працює, переглянувши:
$ TR_TORRENT_NAME=MyTorrent
$ echo '{"type": "note", "title": "'"$TR_TORRENT_NAME"'", "body": "'"$TR_TORRENT_NAME completed"'."}'
{"type": "note", "title": "MyTorrent", "body": "MyTorrent completed."}
Коли з'являється змінна оболонки, вона завжди знаходиться в подвійних лапках. Отже, вона правильно розширюється.
Цитуючи подібне, це трохи тонко. У нас є однорядкові рядки, які містять подвійні лапки як символи і знаходяться поруч із рядками з подвійним цитуванням. Щоб зрозуміти це краще, візьмемо цей приклад як приклад:
"'"$TR_TORRENT_NAME"'"
Приймаючи кожного символу по черзі:
"
- це буквальний символ з подвійною цитатами, який знаходиться в межах одноцитованого рядка. (Для стислості початок цього рядка не показаний у цьому фрагменті.)
'
закриває одноцитуваний рядок.
"
відкриває рядок з подвійним цитуванням.
$TR_TORRENT_NAME
- змінна оболонки, розширена всередині подвійних лапок.
"
закриває рядок з подвійним цитуванням.
'
відкриває нову рядок з цитатами з одним цитуванням.
"
розміщує символ подвійної цитати всередині одноцитуваного рядка.