Límite de número de Bash?

Yo preguntéuna pregunta anteriormente, eso implicaba extraer primos grandes de un archivo de texto y colocarlos en otro archivo. Se suponía que debía capturar todos los prime hasta e incluyendo el primer prime después de 2 ^ 32, y por alguna razón este script dejó de funcionar.

#!/bin/bash
n=4294967296
last=0
while read number
    do
    if [ $last -gt $n ]
    then break
    fi
    echo $number
last=$number
done < primes.txt > primes2.txt

Terminó repitiendo estos 11 números:

4232004449  
4232004479  
4232004493  
4232004509  
4232004527  
4232004533  
4232004559  
4232004589  
4232004593  
4232004613  
004437

El archivo original no tenía004437 en ella, y mi fiesta manejará números sobre8999999999999999999

¿Alguien tiene una pista de por qué sucedió esto?

Ubuntu 10.04 de 64 bits, 16 GB de RAM, 8 núcleos a 3,60 GHz
GNU bash, versión 4.1.5 (1) -release (x86_64-pc-linux-gnu)

Actualizar:

Después de descargar y compilar el bash "arreglado" proporcionado por jfgagne y enlazarlo en mi script de bash, se produjo un error en el mismo lugar exacto. Usando el equivalente perl significativamente más rápido de mi pregunta principal original, obtuve algunos tamaños de archivo de ls -al:

        11  next_prime (just to make sure this was counting bytes accurately)
2147483659  primes2.txt
2147483670  one_too_many

2147483659 = 2 ^ 31 + 11

El tamaño de la próxima prima (4232004631) es de 11 bytes Esto contiene todos los números primos hasta4232004613. También me di cuenta de que la004437 viene desde el final del cebado al final de este bucle de error (4232004437). Parece que algo está intentando avanzar, pero está atascado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta