La commande 
while évalue 
test comme expression (de la même façon que 
expr évalue ses arguments). La valeur de l'expression doit une valeur booléenne correcte; si c'est la valeur true alors 
body est exécuté par transmission à l'interpréteur Tcl. Une fois que 
body a été exécuté alors 
test est évalué de nouveau, et le processus recommence jusqu'a ce que éventuellement 
test évalue à une valeur booléenne false. Des commandes 
continue peuvent être exécutées à l'interieur de 
body pour terminer l'itération courante de la boucle, et des commandes 
break peuvent être exécutées à l'interieur 
body pour provoquer la fin immédiate de la commande
 while. La commande 
while retourne toujours une chaîne vide.