Supongo que estás en UNIX/Linux. Esto se debe a que cada vez que ejecutas el programa el sistema está lanzando una shell para esa ejecución. Al crear esa shell "hija", hereda el entorno y dispone de la variable. Por eso la primera vez puedes ver el valor. Después tu mismo des-asignas la variable.
Cuando vuelves a asignar la variable en la shell, lo estás haciendo en una distinta de la shell (del entorno) donde se está ejecutando el programa.
Ejecución en UNIX
(Puntos:4, Interesante)( http://www.jesus-y-bea.com/ | Última bitácora: Domingo, 02 Diciembre de 2007, 22:22h )
Cuando vuelves a asignar la variable en la shell, lo estás haciendo en una distinta de la shell (del entorno) donde se está ejecutando el programa.
Re:Ejecución en UNIX
(Puntos:2)( http://mcpolu.blogspot.com/ | Última bitácora: Miércoles, 05 Marzo de 2014, 00:04h )
El comentario padre esta en lo cierto. Supongo que haciendo export $COMANDO="loquesea" funcionaria como tu quieres.
Por otro lado, ya que haces una espera activa podrias meter un Sleep(100) en el bucle para suavizarlo un poco.
En España la mejor manera de guardar un secreto es escribir un libro.