将多行变量值放入电报中的curl消息中

将多行变量值放入电报中的curl消息中

我想$log使用curl 作为电报消息发送。当变量值只有一行时它有效,但当curl: (3) Illegal characters found in URL它不是时(当变量值多于一行时)我会收到错误。

日志.log:

>tail -3 /home/name/log.log
sftp> ls -l /home/somefile.txt
/home/somefile.txt
sftp>

命令:

log=`tail -3 /home/name/log.log`
curl 'https://api.telegram.org/bot$BOT/sendMessage?chat_id=$channelID&text=Found: $log'

答案1

使用 POST 请求和双引号来扩展变量:

log=$(tail -3 /home/name/log.log)
curl -X POST "https://api.telegram.org/bot$BOT/sendMessage"\
    -d chat_id="$channelID" -d text="Found: $log"

-X POST此处是可选的,使用数据选项-d足以满足 POST 请求(内容类型 application/x-www-form-urlencoded)。

相关内容