Bash-从约会开始一周开始

时间:2017-08-27 23:39:11

标签: linux bash

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

我试过了:

date --date="1 days ago" -d "last monday"

但是这个选项但是这会先获得最后一个星期一并减去一天。我想减去一天,然后再到星期一。

1 个答案:

答案 0 :(得分:1)

尝试:

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

工作原理:

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

  • date -d "$(date -d yesterday +%u) days ago"返回日前的日期,以便在昨天之前获得星期一。

    例如,因为今天是星期日,所以星期几是星期六(星期六)。 6天前是上个星期一。

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