かべぎわブログ

ブログです

シェルスクリプトで平日なのか土日祝日なのかを判定してみる

概要

シェルスクリプトをつかって今日が平日なのか土日祝日なのかを判定してみたいとおもいます。
平日の営業日にしか動かしたくないんだよなーみたいなときにやくにたったりたたなかったりします。

スクリプト

そのシェルスクリプトはこんなかんじ。
holiday-jp-rubyのholidays.ymlをcurlで読み込んできてそれをもとに判定をしている。

平日の場合終了ステータスが1で渡される。
土日祝日の場合終了ステータスが0で渡される。

実際に動かしてみる

たとえば現在の日時が以下のとき

$ date
2018年 10月 1日 月曜日 13時14分20秒 JST

平日だけ実行する場合はこう

$ ./holiday_check.sh || echo "wawawa"
wawawa

祝日だけ実行する場合はこう
実行時は平日なのでechoが実行されていないことがわかる。

$ ./holiday_check.sh && echo "wawawa"

オフラインでつかうには

このスクリプトはcurlで外部から土日祝日の情報を取得してきている。
クローズドなイントラ環境で利用するためにはなんらかの方法でこのholidays.ymlをローカルに持ってきて、cat holidays.yml | awk '{print $1}'すればよい。

おわりに

営業日だけうごくよ!

新しいLinuxの教科書

新しいLinuxの教科書