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に設定されていると仮定して、もう1つのチェックを追加できます。

[ -z $docs ] && docs=0 

または段落をより明確にするには:

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

関連情報