Existe a possibilidade de que, ao alcançar essa lógica:
if [ $lastPosition -gt $fileLength ]
$lastPosition
ou $fileLength
estarão vazios:
-
$lastPosition
pode estar vazio se$POSFile
não existir ou não puder ser lido. -
$fileLength
pode estar vazio se$LogFile
não existir ou não puder ser lido.
Tente usar citações como esta:
if [ "$lastPosition" -gt "$fileLength" ]
para forçar cada uma dessas variáveis a ser reconhecida como uma entidade única, mesmo que estivesse vazia. Variáveis vazias serão contadas como zero neste caso (ou seja, emparelhadas com o operador "maior que").
Nota: Esta solução proposta não cobre a possibilidade se qualquer variável for reconhecida como não-número.