0403-053 表达不完整;预计会有更多代币

0403-053 表达不完整;预计会有更多代币

我在下面给出了这段代码作为我的主脚本的一部分

if [ -e /tmp/rsm/Logs/filename_$$.txt ];
then
{
total=0
for files in $(<filename_$$.txt);
do
#cd /tmp/rsm/Logs
docs=`grep -i "Number.*processed" $files | cut -d" " -f5`
total=$(($total+$docs))
done
echo "---------------------------------------------------------"
echo  "Total Number Of Documents Processed On $date : $total"
echo "---------------------------------------------------------"
}
else
{
echo "There are "0" logfiles processed on $date"
}
fi

这给出了错误

SDSLoad_onscreendocs.ksh[32]: 1024+: 0403-053 Expression is not complete; more tokens expected.

答案1

因为以下几行

docs=`grep -i "Number.*processed" $files | cut -d" " -f5`
total=$(($total+$docs))

如果docs变量为空,那么您将面临此问题,或者可能docs具有除整数之外的不同值。所以你需要手动或在调试模式下检查。

您还可以再添加一项检查,假设 docs 如果为 null,则设置为零,例如。

[ -z $docs ] && docs=0 

或者更清楚的是短路:

docs=$(grep -i "Number.*processed" $files | cut -d" " -f5 || echo 0)

相关内容