2013-10-06 1 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 루프가 여기에서 작동하지 않는 것입니다. 여기에 두 개의 입력 날짜 변수 사이의 날짜 범위를 인쇄하려고합니다. 예기치 않은 토큰'done '근처에서 구문 오류가 발생했습니다. 제발 제안 해주세요. – user48204

+0

오류 : bkdt1.sh : 16 행 : 예기치 않은 토큰'$ '\ r "' '근처의 구문 오류 kdt1.sh : 줄 16 :'((u1 = u1 + 1)) – user48204

+0

스크립트가 업데이트되었습니다. – jlliagre

관련 문제