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 < u2]];
do
printf '%s%(%Y%m%d)T' '$fmt' '#$u1'
[[u1+=3600*24]];
fmt=", ";
done;enter code here
printf'\n';

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

提前致谢。桑德什

4

1 回答 1

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'
于 2013-10-06T10:35:49.957 回答