Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022

while (1t)


while - Execute script repeatedly as long as a condition is met


while test body


while(1t)                    Tcl Built-In Commands                   while(1t)


       while - Execute script repeatedly as long as a condition is met

       while test body

       The while command evaluates test as an expression (in the same way that
       expr evaluates its argument).  The  value  of  the  expression  must  a
       proper  boolean  value;  if it is a true value then body is executed by
       passing it to the Tcl interpreter.  Once body has  been  executed  then
       test  is evaluated again, and the process repeats until eventually test
       evaluates to a false boolean value.  Continue commands may be  executed
       inside  body  to terminate the current iteration of the loop, and break
       commands may be executed inside body to cause immediate termination  of
       the while command.  The while command always returns an empty string.

       Note:  test  should almost always be enclosed in braces.  If not, vari-
       able substitutions will be made before the while command starts execut-
       ing,  which  means that variable changes made by the loop body will not
       be considered in the expression.  This is likely to result in an  infi-
       nite  loop.   If test is enclosed in braces, variable substitutions are
       delayed until the expression is evaluated (before each loop iteration),
       so  changes  in the variables will be visible.  For an example, try the
       following script with and without the braces around $x<10:

              set x 0
              while {$x<10} {
                  puts "x is $x"
                  incr x

       Read lines from a channel until we get to the end of  the  stream,  and
       print them out with a line-number prepended:

              set lineCount 0
              while {[gets $chan line] >= 0} {
                  puts "[incr lineCount]: $line"

       See attributes(7) for descriptions of the following attributes:

       |Availability   | runtime/tcl-8    |
       |Stability      | Uncommitted      |

       break(n), continue(n), for(n), foreach(n)

       boolean, loop, test, while

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.

Tcl                                                                  while(1t)