if — Execute scripts conditionally
if expr1 ?then? body1 elseif
expr2 ?then? body2 elseif ...
?else? ?bodyN?
The if command evaluates expr1 as an expression (in
the same way that expr
evaluates its argument). The value of the expression must be a
boolean (a numeric value, where 0 is false and anything is true, or
a string value such as true or yes for true and
false or no for false); if it is true then
body1 is executed by passing it to the Tcl interpreter.
Otherwise expr2 is evaluated as an expression and if it is
true then body2 is executed, and so on. If none of the
expressions evaluates to true then bodyN is executed. The
then and else arguments are optional “noise words” to
make the command easier to read. There may be any number of
elseif clauses, including zero. BodyN may also be
omitted as long as else is omitted too. The return value
from the command is the result of the body script that was
executed, or an empty string if none of the expressions was
non-zero and there was no bodyN.
A simple conditional:
if {$vbl == 1} { puts "vbl is one" }
With an else-clause:
if {$vbl == 1} {
puts "vbl is one"
} else {
puts "vbl is not one"
}
With an elseif-clause too:
if {$vbl == 1} {
puts "vbl is one"
} elseif {$vbl == 2} {
puts "vbl is two"
} else {
puts "vbl is not one or two"
}
Remember, expressions can be multi-line, but in that case it can
be a good idea to use the optional then keyword for
clarity:
if {
$vbl == 1
|| $vbl == 2
|| $vbl == 3
} then {
puts "vbl is one, two or three"
}
expr, for, foreach
boolean, conditional, else, false, if, true
Copyright © 1993 The Regents of the University of
California.
Copyright © 1994-1996 Sun Microsystems, Inc.