0403-053 A expressão não está completa; mais fichas esperadas

1

Eu tenho este pedaço de código abaixo como parte do meu script principal

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

que dá o erro

SDSLoad_onscreendocs.ksh[32]: 1024+: 0403-053 Expression is not complete; more tokens expected.
    
por ramp 26.10.2013 / 13:29

1 resposta

1

isso por causa das linhas seguintes

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

se a variável docs for nula, você enfrentará esse problema ou poderá ter docs com um valor diferente de inteiro. então você precisa verificar isso manualmente ou no modo de depuração.

você também pode adicionar mais uma verificação, digamos se a documentação for nula e depois definida como zero por exemplo.

[ -z $docs ] && docs=0 

Ou mais claro é o curto-circuito:

docs=$(grep -i "Number.*processed" $files | cut -d" " -f5 || echo 0)
    
por 26.10.2013 / 17:06

Tags