Bashスクリプトは過去の日時をテストしますか?

Bashスクリプトは過去の日時をテストしますか?

パラメータの1つが日付/時刻であるbashシェルスクリプトを作成しています。日付が過去であるか(または過去のどの時点であるか(例:「少なくとも3日前でしたか?」))、確認する最良の方法は何ですか?

bash v4、Ubuntu Linux 18.04+ apt-get、。

ベストアンサー1

GNU date(Ubuntuでの実装)とその-d拡張機能を使用して、自然言語(英語)の日付/時刻仕様などを解析する機能です。この+%s形式は日付をエポック以降の秒単位に変換するので、簡単に比較できます。

#!/bin/bash
date='2020-08-12T16:00:10'
epoch=$(date -d "$date" +%s)
if [ "$epoch" -lt "$(date -d '3 days ago' +%s)" ] ; then
    echo At least 3 days ago
else
    echo Too recent
fi

おすすめ記事