Looping a través de líneas en el file usando bash y pasando a variable. La variable resultante no tiene el mismo valor que el file, ¿por qué?

Tengo un script bash (simplemente haciendo una coincidencia de patrón de file de logging simple) que he estado ejecutando en un cron durante algunos años. Recientemente se rompió y comenzó a devolver resultados extraños. Al profundizar en el script y hacer algunas depuraciones, descubrí que el problema parece ser un ciclo while que hago en un file.

Para ilustrar el problema hice un gato en el file 'cat / var / tmp / file' y obtengo lo que espero get, que es un sello de time y algunos ID (sin formatear):

15:56:14,965 [,PCC12345678(PSI12345678),,] 18:08:43,706 [,PCC23456789(PSI23456789),,] 12:01:49,233 [,PCC34567891(PSI34567891),,] 

Cuando pongo esto en un ciclo while esperaría que siga siendo el mismo, pero no es así. Cuando hago eco de la línea en el ciclo, el segundo campo (los ID) siempre cambia a '1', como este:

 cat /var/tmp/file | while read line do echo $line done 

Me da una salida de:

 15:56:14,965 1 18:08:43,706 1 12:01:49,233 1 

Que obviamente es completamente diferente a lo que está en el file y me ha dejado desconcertado.

Cosas que he intentado hasta ahora:

  • Pensé que tal vez la variable $ line se quedó atascada en la memory, así que intenté borrar eso, no funcionó.
  • Probé el clásico "apágalo y enciéndelo otra vez" para el server por falta de mejores ideas, pensando que tal vez se aclararía lo que pudiera haberse quedado atascado.
  • Intenté ejecutar el script en otros dos serveres, tengo el mismo problema.

Actualmente estoy pensando que tal vez no le gusta el formatting del file, posiblemente algo que ver con los corchetes o comas. Aunque no estoy seguro de por qué ese sería el caso o por qué de repente estaría sucediendo.

Nota: nada ha cambiado desde el script ni desde los files de logging en los que se está ejecutando desde que se escribió. Estuvo trabajando previamente durante dos años.

Editar: Después de las sugerencias, he verificado lo que puede haber cambiado en el entorno, por lo que puedo decir es igual. A less que algo haya cambiado con una actualización del sistema operativo (que no sabría cómo verificar):

  • .bash_profile y .profile no se han editado en más de tres años.
  • He intentado ejecutar el script en otros shells ksh, bash, csh. Mismo problema encontrado en todos ellos.
  • He intentado ejecutar el script con otros usuarios, incluido el usuario root. Nuevamente el mismo problema con todos ellos.

Gracias Matt