Unix shell-意外标记“done';
下面是我的代码Unix shell-意外标记“done';,unix,ksh,Unix,Ksh,下面是我的代码 #!/bin/ksh curdate=$(date '+%d%h,%Y') while read line; do echo "$line" > new10.txt str0=$(cut -f 2 new10.txt) str01=$(cut -f 1 -d ',' new10.txt) str1=$(cut -f 2 -d ',' new10.txt) str2=$(cut -c 3 $str1) if [ $str2=':' ]; then
#!/bin/ksh
curdate=$(date '+%d%h,%Y')
while read line;
do
echo "$line" > new10.txt
str0=$(cut -f 2 new10.txt)
str01=$(cut -f 1 -d ',' new10.txt)
str1=$(cut -f 2 -d ',' new10.txt)
str2=$(cut -c 3 $str1)
if [ $str2=':' ];
then
str2=',2016'
finalstr=$str01$str2
if [ '01jan2017' -le $finalstr -le $curdate ];
then
finalstr1=$str01',2017'
else
finalstr1=$str01',2016'
echo $finalstr1 > datefinal.txt
fi
done < /export/home/islams/PISAS/userwiseutil/date.txt
#/bin/ksh
curdate=$(日期'+%d%h,%Y')
读行时;
做
echo“$line”>new10.txt
str0=$(cut-f2 new10.txt)
str01=$(cut-f1-d','new10.txt)
str1=$(cut-f2-d','new10.txt)
str2=$(削减-c3$str1)
如果[$str2=':'];
然后
str2=',2016'
finalstr=$str01$str2
如果['2017年1月1日”-le$finalstr-le$curdate];
然后
finalstr1=$str01',2017'
其他的
finalstr1=$str01',2016'
echo$finalstr1>datefinal.txt
fi
完成
我遇到以下错误:
date1.sh:第22行:意外标记附近出现语法错误done'
date1.sh:第22行:
done#/bin/ksh
#!/bin/ksh
curdate=$(date '+%d%h,%Y')
while read line;
do
echo "$line" > new10.txt
str0=$(cut -f 2 new10.txt)
str01=$(cut -f 1 -d ',' new10.txt)
str1=$(cut -f 2 -d ',' new10.txt)
str2=$(cut -c 3 $str1)
if [ $str2=':' ];
then
str2=',2016'
finalstr=$str01$str2
if [ '01jan2017' -le $finalstr -le $curdate ];
then
finalstr1=$str01',2017'
else
finalstr1=$str01',2016'
echo $finalstr1 > datefinal.txt
fi
fi #You missed this
done < /export/home/islams/PISAS/userwiseutil/date.txt
curdate=$(日期'+%d%h,%Y')
读行时;
做
echo“$line”>new10.txt
str0=$(cut-f2 new10.txt)
str01=$(cut-f1-d','new10.txt)
str1=$(cut-f2-d','new10.txt)
str2=$(削减-c3$str1)
如果[$str2=':'];
然后
str2=',2016'
finalstr=$str01$str2
如果['2017年1月1日”-le$finalstr-le$curdate];
然后
finalstr1=$str01',2017'
其他的
finalstr1=$str01',2016'
echo$finalstr1>datefinal.txt
fi
你错过了这个
完成
您错过了一个fi您尚未关闭您的
if
语句。我看到两个if
,只有一个fi
。另外,你应该使用缩进来让东西更容易阅读。看,我添加了缩进,问题变得很明显。请在发送到stackoverflow之前进行缩进,阅读您的帖子会更愉快,它会解决此类错误。非常感谢并为我的愚蠢错误感到抱歉。您能告诉我用于比较范围内日期的if语句是否正确吗?您不能在一个if语句中比较3件事情。考虑使用格式YYYYMMD,这将使比较日期更容易。