私の基本スクリプトの一部として、以下にこのコードを提供しました。
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)