当我为Telegram API运行以下bash命令时:
curl "https://api.telegram.org/bot<BOT_TOKEN>/sendMessage?chat_id=-285153354&text=Ubuntu%20Online:%20%28"$(hostname -I | sed 's| |%29%20%28|g')"%29"
它工作正常,并产生结果:
{“ ok”:true,“结果”:{“ message_id”:77,“来自”:{“ id”:606694295,“ is_bot”:true,“ first_name”:“ Khadas”,“用户名”: “ khadas_bot”},“聊天”:{“ id”:-285153354,“ title”:“ Khadas”,“ type”:“ group”,“ all_members_are_administrators”:true},“ date”:1535270416,“ text”: “ Ubuntu在线:(10.0.1.18)”,“实体”:[{“ offset”:16,“ length”:12,“ type”:“ url”},{“ offset”:31,“ length”:9 ,“ type”:“ url”}]}} $
但是,如果我通过SSH隧道传输它,就像这样:
ssh root@x.x.x.x curl "https://api.telegram.org/bot<BOT_TOKEN>/sendMessage?chat_id=-285153354&text=Ubuntu%20Online:%20%28"$(hostname -I | sed 's| |%29%20%28|g')"%29"
它产生此错误消息:
{“确定”:false,“错误代码”:400,“说明”:“错误请求:消息文本为空”}
好像&text=
...并没有通过SSH与curl
请求一起发送到远程主机x.x.x.x
一样。
有人知道为什么吗?卷发字符串错误?