我正在编写一个bash脚本,需要打印最后一个工作日的日期.因此,例如,如果脚本在星期一运行,它将打印上周五的日期.
我发现这打印昨天的日期:
date -d '1 day ago' +'%Y/%m/%d'
Run Code Online (Sandbox Code Playgroud)
我也知道我可以通过使用此声明获得一周中的某一天
date +%w
Run Code Online (Sandbox Code Playgroud)
我想结合这两个语句,以便有一个小帮助脚本打印所需的日期.逻辑是这样的(注意:它的伪代码 - 我从来没有写过bash脚本)
DAY_OF_WEEK = `date +%w`
if (%DAY_OF_WEEK == 1)
LOOK_BACK = 3
elif
LOOK_BACK = 1
fi
echo `date -d '%LOOK_BACK day ago' +'%Y/%m/%d'`
Run Code Online (Sandbox Code Playgroud)
有人可以通过纠正上面的伪代码来帮助吗?
(我在Ubuntu 10.0.4上运行)
kev*_*ine 17
你太近了:
day_or_week=`date +%w`
if [ $day_or_week == 1 ] ; then
look_back=3
else
look_back=1
fi
date -d "$look_back day ago" +'%Y/%m/%d'
Run Code Online (Sandbox Code Playgroud)
周日也需要检查。
DAY_OF_WEEK=`date +%w`
if [ $DAY_OF_WEEK = 0 ] ; then
LOOK_BACK=2
elif [ $DAY_OF_WEEK = 1 ] ; then
LOOK_BACK=3
else
LOOK_BACK=1
fi
date -d "$LOOK_BACK day ago" +'%Y/%m/%d'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20309 次 |
| 最近记录: |