La commande 
if évalue 
expr1 comme expression (de la même façon que 
expr évalue ses argument) La valeur de l'expression doit être booléenne (une valeur numérique, où 0 est faux et tout le reste est vrai, ou une valeur chaîne tel que 
true ou 
yes pour vrai et 
false ou 
no pour faux); si vrai alors 
body1 est exécuté par passage à l'interpréteur Tcl. Autrement 
expr2 est évalué comme expression et si vrai alors 
body2 est exécuté, et ainsi de suite. Si aucune des expressions n'est évaluée à vrai alors 
bodyN est exécuté. Les arguments 
then et 
else sont optionnels, ils facilitent la lecture de la commande. Il peut y avoir n'importe quel nombre de clauses 
elseif, incluant zéro. 
BodyN peut aussi être omis tant que 
else est également omis. La valeur de retour de la commande est le résultat du script qui a été exécuté, ou une chaîne vide si aucune des expressions n'a été différente de zéro et qu'il n'y avait pas de 
bodyN