我的脚本有什么问题...日期范围脚本

时间:2013-10-06 09:54:24

标签: ksh

#!/bin/ksh
DATE=`date +%Y-%m-%d`
echo $DATE
date1='20120601'
date2='20120614'

u1=`echo $date1|cut -c1-4|tr -d ' '``echo $date1|cut -c5-6|tr -d ' '``echo $date1|cut -c7-8|tr -d ' '`

u2=`echo $date2|cut -c1-4|tr -d ' '``echo $date2|cut -c5-6|tr -d ' '``echo $date2|cut -c7-8|tr -d ' '`

echo " --- " $u1    $u2   $u3
fmt=''
while [[u1 < u2]];
do
printf '%s%(%Y%m%d)T' '$fmt' '#$u1'
[[u1+=3600*24]];
fmt=", ";
done;enter code here
printf'\n';

上面的代码不起作用,它不提供执行后的日期范围。我正在使用AIX7.1。请帮助我知道我的代码有什么问题。

提前致谢。 Sandesh

1 个答案:

答案 0 :(得分:0)

目前还不清楚您要实现的目标,但以下代码至少应该执行而不会出现错误:

#!/bin/ksh
DATE=`date +%Y-%m-%d`
echo $DATE
date1='20120601'
date2='20120614'

u1=`echo $date1|cut -c1-4|tr -d ' '``echo $date1|cut -c5-6|tr -d ' '``echo $date1|cut -c7-8|tr -d ' '`

u2=`echo $date2|cut -c1-4|tr -d ' '``echo $date2|cut -c5-6|tr -d ' '``echo $date2|cut -c7-8|tr -d ' '`

echo " --- " $u1 $u2 $u3
fmt=''
while [ $u1 -lt $u2 ]
do
  printf '%s%d' "$fmt" $u1
  u1=$(( u1 + 1 ))
  fmt=", ";
done
echo
echo enter code here
printf '\n'