![0403-053 표현이 불완전합니다. 더 많은 토큰이 필요합니다.](https://linux55.com/image/3294/0403-053%20%ED%91%9C%ED%98%84%EC%9D%B4%20%EB%B6%88%EC%99%84%EC%A0%84%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EB%8D%94%20%EB%A7%8E%EC%9D%80%20%ED%86%A0%ED%81%B0%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내 기본 스크립트의 일부로 아래에 이 코드를 제공했습니다.
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)