shell根据日期得到日期周一的日期

#!/bin/bashdate=$1date=`date-d"-0day${date}"+%Y%m%d`datez=`date-d"%w"+%Y%m%d`上面的脚本中我获... #!/bin/bash
date =$1
date =`date -d "-0 day ${date}" +%Y%m%d`
datez =`date -d " %w" +%Y%m%d`

上面的脚本中 我获取了参数,然后通过参数得到date值是传过来的日期的值,
第四行 我想通过 传过来的参数得到参数日期的周一日期,。
比如 我穿过去的是20171231 date的值是20171231 ,datez的值是20171225 , 31号那周周一的日期。
展开
 我来答
wallcopper
2018-02-06 · TA获得超过3447个赞
知道大有可为答主
回答量:1986
采纳率:86%
帮助的人:1808万
展开全部
1、不要用date关键词做参数,容易绕进去,获取到星期几后减1((week--))
%u day of week (1..7); 1 is Monday
%w day of week (0..6); 0 is Sunday
2、 cat d.sh
#!/bin/sh
if [ -z $1 ];then
echo "Usage $0 20180101";
exit 0;
fi
d1=$1
week=`date -d $d1 +%w`
((week--))
d3=`date -d ${d1}" -${week} days" +%Y%m%d`
echo input is:$d1
echo monday is :$d3
3、例如:
./d.sh 20180208
input is:20180208
monday is :20180205
./d.sh 20180201
input is:20180201
monday is :20180129
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式