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