尝试让传输在下载完成时通知。
这有效:
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
而不是该变量的实际内容。
我需要逃避一些引用或什么吗?
在单引号内,shell 不展开任何内容。将它们放在双引号内:
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."}
当 shell 变量出现时,它总是在双引号内。因此,它被适当地扩展。
这样的引用有点微妙。我们有单引号字符串,其中包含双引号作为字符,并且位于双引号字符串的旁边。为了更好地理解这一点,让我们以这个片段为例:
"'"$TR_TORRENT_NAME"'"
依次取每个字符:
"
是单引号字符串内的文字双引号字符。(为简洁起见,此片段中未显示此字符串的开头。)
'
关闭单引号字符串。
"
打开一个双引号字符串。
$TR_TORRENT_NAME
是在双引号内展开的 shell 变量。
"
关闭双引号字符串。
'
打开一个新的单引号字符串。
"
在单引号字符串中放置一个双引号字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句