Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

サイトのRSSを取得できなかったらHTMLを吐かずにエラーコードを出力して失敗、取得成功してさらに取得したRSSのサイズが0より大きかったら後続のコマンドを実行する

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

外のサーバから情報を取得して表示している場合に、外のサーバが落ちていてもサイトに取得エラーが表示されないよう、ローカルに保存したデータを参照するようにしたかったため。

curl -f -o /path/to/hoge.rss https://example.com/hoge.rss && [ -s /path/to/hoge.rss ] && cp /path/to/hoge.rss /path/to/hoge2.rss

curl -f ⇒404などを吐かずにエラーで終了 -o 出力するファイルを指定、>でリダイレクトした場合、変にサイズのあるファイルを生成され、後続が動くのを止める。

なので-fを付けていれば変なデータで上書き生成されることはないので、このケースの場合、次の&&以降は必要なかったりするが、ファイルサイズによる判定は他では有用なので、一応記載しておく。

【参考】

【curl】404 Not Foundで0以外の終了ステータスコードを返すようにする – suer TIL

よく使うcurlコマンドのオプション #Linux – Qiita

[ -s ファイル名 ]⇒Bashでサイズが0より大きい場合に真を返す書き方  [ の後と、 ] の前に半角スペースがあることに注意。

&&⇒先行のコマンドの結果が真だった場合のみ、後続を実行する

タイトルとURLをコピーしました