Bash-从日期开始获取周

Nav*_*nan 1 linux bash

我正在尝试在单行代码中创建一个 bash 变量,该变量从当天减去一天,然后获取减去的日期的星期一的日期。我如何在一行中完成此操作。

我试过:

date --date="1 days ago" -d "last monday"
Run Code Online (Sandbox Code Playgroud)

但是这个选项却首先获取最后一个星期一并减去一天。我想减去一天然后得到上周一。

Joh*_*024 5

尝试:

$ date -d "$(date -d yesterday +%u) days ago"
Mon Aug 21 18:18:54 PDT 2017
Run Code Online (Sandbox Code Playgroud)

怎么运行的:

  • date -d yesterday +%u获取昨天的星期几(1=星期一,7=星期日)。

  • date -d "$(date -d yesterday +%u) days ago"返回足够多天前的日期以获得前天的星期一。

    例如,由于今天是星期日,所以昨天的星期几是 6(星期六)。6天前是上周一。

    如果今天是星期一,则昨天的星期几将是星期日,即 7,“7 天前”将是今天之前的星期一。