2013-10-06 67 views
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。请帮忙了解我的代码有什么问题。我的脚本有什么问题...日期范围脚本

在此先感谢。 Sandesh

回答

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' 
+0

嗨,我是新来的UNIX。问题是我的while循环在这里不起作用。这里我试图在两个输入日期变量之间打印日期范围。获取错误为“在意外令牌附近出现语法错误”。请建议。 – user48204

+0

获取错误信息:bkdt1.sh:第16行:意外标记附近的语法错误'$'\ r'' 'kdt1.sh:line 16:'((u1 = u1 + 1)) – user48204

+0

脚本已更新。 – jlliagre