使用以下命令,它将返回上一个星期六的日期。
date +"%b-%d-%Y" -d "last saturday"
Sep-01-2018
我想将输入日期作为参数传递,它应该在bash脚本中返回最后一个星期六的日期。
Aug-08-2018 -----> Aug-04-2018
Jun-04-2018 -----> Jun-02-2018
答案 0 :(得分:3)
获取一个负数,该数字将是要减去的天数。我们使用13,因为星期六是6,而6 + 7 = 13
。这将使我们提前一周或两周的星期六。然后我们对7做模,以确保它是下一个星期六,然后减去7使其成为最后一个星期六。然后将diff放入日期字符串中:
$ date_str="Aug-08-2018"
$ diff=$(( (13 - $(date +"%u" -d ${date_str})) % 7 - 7))
$ date -d "${date_str} ${diff} days"
Sat Aug 4 00:00:00 EDT 2018