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号那周周一的日期。 展开
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号那周周一的日期。 展开
1个回答
展开全部
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
%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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |