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.