如何使用shell脚本从今天的日期获取上一个星期天的日期?

ana*_*tki 1 bash shell

我想通过将今天的日期作为一周中除星期日以外的所有日子的输入来打印上周日的日期,但如果是星期日,则它应该打印今天的日期。我试过这个,

a=`date -dlast-sunday +%Y%m%d`
Run Code Online (Sandbox Code Playgroud)

但这在最后一个日期之前给出了星期日的日期。

che*_*ner 6

与其要求上周日,不如要求周日之前一周。

$ date +%Y%m%d
20190531
$ date -d'next sunday - 1 week' +%Y%m%d
20190526
Run Code Online (Sandbox Code Playgroud)

正如“上周日”总是早于当天一样,“下周日”总是当天之后。

因为我写这个答案时是星期五,所以让我们使用这种技术要求上星期五:

$ date +"%A %F"
Friday 2019-05-31
$ date -d 'next Friday - 1 week' +"%A %F"
Friday 2019-05-31
Run Code Online (Sandbox Code Playgroud)