LoginSignup
0
1

今日が休みかどうか見極めてみた

Posted at

平日だけ◯◯◯◯したい・・・みたいなことがあったのですが
意外とまとまった記事が見つからなかったのでまとめました。

検証環境

WindowsからSSH接続した Mac Pro

nkfコマンドをインストールする

brew install nkf

cronを設定する

月曜〜金曜に「祝日かどうかをチェックするシェル」が実行されるよう設定する

0 10 * * 1-5 /bin/sh  check_syukujitsu.sh

祝日かどうかをチェックするシェルの中身

check_syukujitsu.sh
#!/bin/sh

curl -o holidays.csv "https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv"

# 改行コードをLFに変更する
nkf -Lu --overwrite holidays.csv

# 現在が祝日ではなければ workday
if ! grep -q `date "+%Y/%-m/%-d"`, "holidays.csv"; then echo "workday"; fi

文字コードと改行コードの変更が必要

curl で落とした csvファイルの文字コードが UTF-8 ではない(Shift_JIS のためか)、grep でうまく判定できませんでした。

以下のコマンドで文字コードを変更しました。

nkf -w --overwrite holidays.csv

ところが、これだけでは判定できませんでした。

ハッ..!改行コードも変えないといけないのでは?と思い
以下の通り、改行コードを LF へ変換すると、判定できるようになりました。

nkf -Lu --overwrite holidays.csv

このコマンドを実行するだけで文字コードも UTF-8 に変換してくれるので、
結果的に上記コマンドのみに置き換えました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1