如何检查月末是否在周末?

Jag*_*gan -3 linux bash date

我需要检查并获取周末的月末日期,有人可以帮忙吗

αғs*_*нιη 5

使用 GNU date

[[ $(date -d "-$(date +%d)days month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
Run Code Online (Sandbox Code Playgroud)

通常,date -d "-$(date +%d)days month"意味着减去当月的天数并在结果中添加一个月;那实际上是:

date -d'-XXX days + 1month'
Run Code Online (Sandbox Code Playgroud)

我们在这里计算并获得XXX天数date +%d


2021 年 1 月在周末结束的测试:

[[ $(date -d "-$(date +%d)days 3month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
Run Code Online (Sandbox Code Playgroud)

man date 开始%u是星期几 (1..7) 的 FORMAT 控件;1 是星期一。所以根据您所在地区的周末日历更改上面的 6 和 7。