2013-10-06 110 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