我想从脚本生成的日期中提取下一个工作日并分配给变量last_day
假设变量last_day
有一个值,last_day=20190426
我想获取next_day=2019-04-29
if value of last_day=2019-04-17
then next_day=2019-04-18
。场景是,如果 last_day 是星期五,则打印 next_day 作为星期一,否则打印下一天的日期。
不知道如何使下面的命令与变量一起使用。
date +%Y-%m-%d -d "+$(( ( $(date +%w)==5 )?3:1 )) days"
尝试过这个,但它不起作用。
next_day=$(date +%Y-%m-%d -d "+$(( ( $(${last_day} +%w)==5 )?3:1 )) days")
答案1
尝试这个,
last_day=20190426
date -d "$last_day +$( if [ `date -d $last_day +%w` == 5 ]; then echo 3; elif [ `date -d $last_day +%w` == 6 ]; then echo 2; else echo 1; fi ) days" +"%Y%m%d"
输入可以是任何一天。所以
- 如果输入落在一周的第五天(星期五),则会加 3。
- 如果输入落在一周的第六(周六)天,则会加 2。
- 否则为一周中的所有其他天添加 1