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인 경우 0으로 설정되어 있다고 가정하여 검사를 하나 더 추가할 수도 있습니다.

[ -z $docs ] && docs=0 

또는 단락을 더 명확하게 하려면:

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

관련 정보