我想$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)。