加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何计算ksh shell脚本中的上一个工作日?

发布时间:2020-12-15 18:18:51 所属栏目:安全 来源:网络整理
导读:在 shell ksh脚本中计算前一个工作日的最优雅方法是什么? 我到现在所拥有的是: #!/bin/kshset -xDAY_DIFF=1case `date '+%a'` in"Sun") DAY_DIFF=2 ;;"Mon") DAY_DIFF=3 ;;esacPREV_DT=`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=l
在 shell ksh脚本中计算前一个工作日的最优雅方法是什么?

我到现在所拥有的是:

#!/bin/ksh

set -x

DAY_DIFF=1
case `date '+%a'` in
"Sun")
   DAY_DIFF=2
   ;;
"Mon")
   DAY_DIFF=3
   ;;
esac

PREV_DT=`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time()-${DAY_DIFF}*24*60*60);printf "%4d%02d%02d",$year+1900,$mon+1,$mday;'`

echo $PREV_DT

如何将${DAY_DIFF}变量作为值而不是字符串传输?

解决方法

#!/bin/ksh
# GNU date is a veritable Swiss Army Knife...
((D=$(date +%w)+2))
if [ $D -gt 3 ]; then D=1; fi
PREV_DT=$(date -d "-$D days" +%F)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读