テレグラムのカールメッセージに複数行の変数値を入れます。

テレグラムのカールメッセージに複数行の変数値を入れます。

$logカールを使用して電報メッセージを送信したいです。変数の値が単一の行の場合は機能しますが、curl: (3) Illegal characters found in URLそうでない場合(変数の値が複数の行の場合)、エラーが発生します。

ログ.ログ:

>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)にはdataオプションを使用するだけで十分です。

関連情報