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