簡體   English   中英

使用 bash 腳本檢查日期范圍

[英]Check for date range with bash scripting

我正在嘗試制作一個從 2020 年 12 月 24 日到 2021 年 6 月 1 日有效的腳本。 現在我 olny 讓它只適用於 2 個日期:

if [ "$(date +'%m%d')" != "1224" ] && [ "$(date +'%m%d')" != "1226" ];

所以這個腳本應該從 12/24 - 01/06 開始工作。 有什么建議么? 謝謝

您可以在date中使用+%s選項將開始/結束日期轉換為紀元時間 您使用-d選項提供日期。

然后,您再次使用+%s檢索當前日期並使用標准 integer 比較進行比較,如下所示:

start=$(date +%s -d '12/24/2020')
finish=$(date +%s -d '06/02/2021')

now=$(date +%s)
if [ $now -ge $start ] && [ $now -lt $finish ]
then
    echo "Do something"
else
    echo "Skip"
fi

編輯:對於完成日期,有必要使用您預定完成日期之后的那一天,並使用-lt進行比較。 這是因為date將返回指定日期開始的時間戳。 這樣做,您最終會在 2021 年 6 月 1 日午夜之前比較成功。 感謝@gordon-davisson 指出這一點。

beg='20201224'
end='20210601'
now=$(date +'%Y%m%d')
if (( beg <= now )) && (( now <= end)); then

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM