Samouczek Tcl/Tk
โก Inteligentne podsumowanie
TCL (Tool Command Language) to oparty na ciฤ gach znakรณw jฤzyk skryptowy i proceduralny stworzony przez Johna Osterhouta w 1989 roku, szeroko stosowany w interfejsach graficznych i szybkich prototypach.pingi testowania, w ktรณrym domyลlnie kaลผda wartoลฤ traktowana jest jako ciฤ g znakรณw.

Co to jest TCL?
TCL to aplikacja powลoki, ktรณra odczytuje polecenia TCL ze standardowego wejลcia lub z pliku i daje poลผฤ dane wyniki.
TCL to jฤzyk skryptowy oparty na ลaลcuchach znakรณw, a jednoczeลnie jฤzyk proceduralny. Zostaล stworzony przez Johna Osterhouta w 1989 roku. Celem rozwojuping Ten jฤzyk moลผna ลatwo osadziฤ w aplikacjach. Jest powszechnie uลผywany w interfejsach graficznych i testach. Na przykลad w szybkim prototypowaniu.ping, Testy interakcja z bazฤ danych itp. W TCL domyลlnie wszystko jest ciฤ giem znakรณw.
Jak wykonaฤ TCL
Istniejฤ dwa sposoby wykonania kodu TCL:
- Windows aplikacja jest dostฤpna tutaj plik exe tcltutor
- Aplikacja oparta na Linuksie
In Linux interaktywny interpreter, moลผemy wykonaฤ skrypty TCL jak poniลผej
Aby uzyskaฤ dostฤp do sesji interaktywnej TCL, wykonaj nastฤpujฤ ce polecenie
Skrypty TCL
Program TCL powinien mieฤ rozszerzenie .tcl. Kaลผdy skrypt w UNIX/LINUX zaczyna siฤ od ลcieลผki powลoki TCL
#!/usr/bin/tclsh
Przykลad:-
#!/usr/bin/tclsh Puts "Hello World" Script execution:- $ chmod +x helloworld.tcl $ ./helloworld.tcl
Wydajnoลฤ: Witaj ลwiecie
W TCL polecenie โPutsโ sลuลผy do drukowania wiadomoลci na konsoli. Skลadnia polecenia puts znajduje siฤ poniลผej
umieszcza ?-nonewline? ?channelId? string
- Brak linii: Ten opcjonalny parametr domyลlnie pomija znak nowego wiersza. Umieszcza nowฤ liniฤ do kaลผdego ciฤ gu
- ID kanaลu: Ten parametr uลผywany dla standardowego kanaลu wejลciowego (stdin) i standardowego kanaลu wyjลciowego (stdout).
Byลy:-
%puts "Hello World" % Hello World %puts stdout "Hello World" % Hello World
TCL Rodzaj podstawienia
W TCL wystฤpujฤ trzy rodzaje podstawieล
- Zastฤpowanie poleceล
- Podstawianie zmiennych
- Podstawienie ukoลnika odwrotnego
Studiujmy jeden po drugim
Zastฤpowanie poleceล
Do podstawienia poleceล uลผywa siฤ nawiasรณw kwadratowych.
Przykลad:-
% puts [expr 1*3] % 3
Tutaj polecenie w nawiasach kwadratowych jest najpierw przetwarzane. Zwracane sฤ wyniki. โexprโ sลuลผy do wykonywania obliczeล arytmetycznych.
Podstawianie zmiennych
TCL dokonuje podstawienia zmiennych za pomocฤ $ znak.
Przykลad:-
#!/usr/bin/tclsh set a 10 puts a puts $a
Tutaj tworzymy zmiennฤ o nazwie โaโ i ustawiamy dla niej wartoลฤ โ10โ.
- puts a : Wypisuje na konsoli ciฤ g โaโ, ale nie wartoลฤ โaโ.
- puts $a: Wypisuje wartoลฤ โaโ na konsoli
Wykonajmy to i zweryfikujmy. Otrzymasz wynik jak poniลผej.
$ ./substitution.tcl
a
10
Podstawienie ukoลnika odwrotnego
W Tcl ukoลnik odwrotny sลuลผy do escaping Znaki specjalne, a takลผe do rozkลadania dลugich poleceล na wiele wierszy. Kaลผdy znak bezpoลrednio po ukoลniku odwrotnym pozostanie bez zmian. W poniลผszym przykลadzie widaฤ, ลผe znak specjalny โ โ pozostaje po ukoลniku odwrotnym.
Sprawdลบmy to na przykลadzie
#!/usr/bin/tclsh puts "This is my \"car\"" $ ./backslashsubstitution.tcl This is my "car"
NOTATKA: -Do komentowania dowolnego ciฤ gu znakรณw w TCL uลผywany jest znak โ#โ. Wszystkie znaki po โ#โ sฤ ignorowane przez polecenie powลoki tclsh.
Zmienna TCL
Zmienna to identyfikator przechowujฤ cy wartoลฤ. Innymi sลowy, zmienna to odwoลanie do pamiฤci komputera, w ktรณrej przechowywana jest wartoลฤ.
Zmienne sฤ tworzone za pomocฤ polecenia โsetโ, a w nazwach zmiennych rozrรณลผniana jest wielkoลฤ liter. Oznacza to: czeลฤ, czeลฤ, czeลฤ, w TCL wszystko jest inne. Spรณjrz na przykลad zmiennej rozrรณลผniajฤ cej wielkoลฤ liter.
% set name Techoit % set Name Technoit_1 % set NAME Technoit_2
Wynik:-
% puts $name % Technoit %puts $Name %Technoit_1 %puts $NAME %Technoit_2
Tworzenie zmiennych TCL
Aby utworzyฤ zmienne w TCL, musisz uลผyฤ "ustawiฤ" komenda
Ustaw 10
Aby uzyskaฤ wartoลฤ zmiennej, naleลผy uลผyฤ symbolu โ$โ, np
% umieลciฤ $a
% 10
Otrzymujemy wiฤc wartoลฤ zmiennej โaโ jako 10.
Istniejฤ informacje o poleceniu TCL
Polecenie โsetโ sลuลผy do tworzenia i odczytywania zmiennych, jak pokazano powyลผej. Polecenie unset sลuลผy do usuwania zmiennych. Polecenie โinfo existsโ zwraca 1, jeลli zmienna varName istnieje jako zmienna (lub element tablicy) w bieลผฤ cym kontekลcie, w przeciwnym razie zwraca 0 (patrz przykลad poniลผej).
W TCL istniejฤ rรณลผne polecenia โinfoโ, takie jak โinfo existsโ, โinfo featuresโ, โinfo globalโ i tak dalej. Tutaj zobaczymy przykลad polecenia โinfo existsโ.
Byลy:-
% set a 20 % puts $a % 20 % puts [info exists a] % 1 % unset a %puts [info exists a] % 0
Rรณลผne aparaty ortodontyczne i ich zachowanie
{} -> Nawiasy klamrowe
Nawiasy klamrowe w jฤzyku TCL grupujฤ sลowa, tworzฤ c argumenty. Sลuลผฤ one do definiowania bloku, ktรณry jest odroczony โ innymi sลowy, moลผe zostaฤ uruchomiony PO reszcie polecenia w bieลผฤ cym wierszu. Znaki w nawiasach klamrowych sฤ przekazywane do polecenia dokลadnie tak, jak zostaลy napisane.
Kilka punktรณw do zapamiฤtania
- Podstawianie zmiennych nie jest dozwolone w nawiasach klamrowych {}
- Sลuลผyล do tworzenia typu danych listy
Przykลad:-
% set x 10 % puts {$x} % $x
%set liczba {1 2 3 4 5} -> Tutaj liczba jest typem danych listy
%wstawia liczbฤ $
%1 2 3 4 5
[] -> nawiasy kwadratowe
Nawiasy kwadratowe sลuลผฤ do tworzenia zagnieลผdลผonych poleceล. Mรณwiฤ c proลciej, wynik jednego polecenia jest przekazywany jako argument do innego polecenia. Nawiasy kwadratowe sลuลผฤ do definiowania bloku, ktรณry jest uruchamiany PRZED resztฤ polecenia w bieลผฤ cym wierszu, a wynik jest wstawiany do wiersza.
Byลy: -
% set x 10 % puts "y : [set y [set x 10]]" %y : 10 % puts "x : $x" %x : 10
() -> nawiasy okrฤ gลe
To polecenie sลuลผy do tworzenia typu danych tablicowych oraz okreลlania pierwszeลstwa operatorรณw.
% set a(1) 10 % set a(2) 20
Tutaj โaโ jest tablicฤ o wartoลciach 10 i 20. Zobacz poniลผsze polecenia, aby wydrukowaฤ klucze, pary klucz-wartoลฤ i wartoลci tablicy.
% puts [array get a] -> To print key value pairs we use this command % 1 10 2 20 % puts [array names a] -> To print only keys % 1 2 % puts $a(1) -> To print first value of array % 10 % puts $a(2) -> To print second value of array % 20
Aby wydrukowaฤ โN-tฤ โ wartoลฤ tablicy a, uลผyjemy Puts $a(N)
Argumenty wiersza poleceล TCL
Elementy danych przekazywane do skryptu z wiersza poleceล nazywane sฤ argumentami. Liczba argumentรณw wiersza poleceล do skryptu Tcl jest przekazywana jako zmienna globalna argc. Nazwa skryptu Tcl jest przekazywana do skryptu jako zmienna globalna argv0, a pozostaลe argumenty wiersza poleceล sฤ przekazywane jako lista argumentacja.
TCL ma 3 predefiniowane zmienne, takie jak
$argc -> indicates the number of arguments passed to the script $argv -> indicates list of arguments $argv0 -> indicates the name of script
Byลy:-
arg-script.tcl #!/usr/bin/tclsh puts "number of arguments passed to the scripts : $argc" puts "list of arguments are passed to the script: $argv" puts "the name of scripts is: $argv0"
$ ./arg-script.tcl 10 20 30
wydajnoลฤ:-
- Liczba argumentรณw przekazanych do skryptรณw: 3
- Do skryptu przekazywana jest lista argumentรณw: 10 20 30
- Nazwa skryptu to: arg-script.tcl
Wyraลผenie TCL i OperaTor
Wyraลผenie jest konstruowane z operandรณw i operatorรณw. Jest ono obliczane za pomocฤ polecenia โexprโ. Operatory sฤ oceniane na podstawie pierwszeลstwa i asocjatywnoลci. Jฤzyk TCL ma wbudowane operatory, jak poniลผej
| OperaKategoria tor | symbol | Pierwszeลstwo/ลฤ cznoลฤ |
|---|---|---|
| Arytmetyka OperaTor | + โ * / % | Od lewej do prawej |
| Relacyjny OperaTor | == != < > <= >= | Od lewej do prawej |
| logiczny OperaTor | && || ! | Od lewej do prawej |
| Bitowy OperaTor | & | ^ ~ | Od lewej do prawej |
| Potrรณjny OperaTor | ?: | Od prawej do lewej |
| Shift OperaTor | << >> | Od lewej do prawej |
| Porรณwnanie ciฤ gรณw OperaTor | rรณwnanie ne | Od lewej do prawej |
| Potฤgowanie OperaTor | ** | Od lewej do prawej |
| Lista OperaTor | w ni | Od lewej do prawej |
Arytmetyka OperaTor
Wyraลผenie TCL skลada siฤ z kombinacji operandรณw, operatorรณw i nawiasรณw. Zobaczmy przykลad operatorรณw arytmetycznych w TCL
+ Dodaj dwa lub wiฤcej operandรณw
Byลy:-
%set a 10 %set b 20 %puts [expr $a + $b] 30
โ Subtracts dwa lub wiฤcej operandรณw
Byลy:-
%set a 20 %set b 10 %puts [expr $a - $b] 10
*Mnoลผenie dwรณch lub wiฤcej operandรณw
%set a 20 %set b 10 %puts [expr $a * $b] 200
/ Podziel licznik przez mianownik
%set a 20 %set b 10 %puts [expr $a / $b] 2
Operator modulo dzieli licznik przez dzielnik, ale zwraca przypomnienie
%set a 20 %set b 10 %puts [expr $a % $b] 0
Relacyjny OperaTor
Sprawdza, czy wartoลฤ lewego operandu jest wiฤksza od wartoลci prawego operandu. Jeลli tak, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 20 %set b 10 %puts [expr $a > $b] 1
Sprawdลบ, czy wartoลฤ lewego operandu jest mniejsza od wartoลci prawego operandu. Jeลli tak, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 10 %set b 20 %puts [expr $a < $b] 1
>= Sprawdza, czy wartoลฤ lewego operandu jest wiฤksza lub rรณwna wartoลci prawego operandu. Jeลli tak, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 20 %set b 10 %puts [expr $a >= $b] 1
<= Sprawdza, czy wartoลฤ lewego operandu jest mniejsza lub rรณwna wartoลci prawego operandu. Jeลli tak, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 20 %set b 10 %puts [expr $a <= $b] 0
!= Sprawdza, czy wartoลci dwรณch operandรณw sฤ rรณwne, czy nie. Jeลli wartoลci nie sฤ rรณwne, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 20 %set b 10 %puts [expr $a != $b] 1
== Sprawdza, czy wartoลci dwรณch operandรณw sฤ rรณwne, czy nie. Jeลli tak, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0.
%set a 20 %set b 10 %puts [expr $a == $b] 0
logiczny OperaTor
&& Jeลli oba operandy sฤ rรณลผne od zera, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0
%set a 20 %set b 10 %puts [expr $a && $b] 1
|| Jeลli ktรณrykolwiek z dwรณch operandรณw jest rรณลผny od zera, warunek staje siฤ prawdziwy i zwraca 1, w przeciwnym razie zwraca 0
%set a 0 %set b 10 %puts [expr $a || $b] 1
! Sลuลผy do odwracania wyniku dowolnego wyraลผenia. Tutaj, na wyjลciu, widaฤ, ลผe wartoลฤ โaโ zmieniลa siฤ z 0 na 1. Natomiast wartoลฤ โbโ zmieniลa siฤ z 1 na 0.
%set a 0 %set b 1 %puts [expr !$a] 1 %puts [expr !$b] 0
Bitowy OperaTor
& (bitowe i) wykonujฤ operacjฤ bitowฤ i postฤpujฤ zgodnie z poniลผszฤ tabelฤ .
| A | B | A i B. |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
| 1 | 0 | 0 |
Byลy:-
%set A 10 %set B 20 Follow the sequence to convert decimal to binary number 128 64 32 16 8 4 2 1 10 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 0 1 0 1 0 20 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 1 0 1 0 0 So now as per above tabular rules A & B will be 0 0 0 0 0 0 0 0
| (bitowo lub) wykonaj operacjฤ bit po bicie i postฤpuj zgodnie z poniลผszฤ tabelฤ
| A | B | | b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 0 | 1 |
Byลy:-
%set A 10 %set B 20 Follow the sequence to convert decimal to binary number 128 64 32 16 8 4 2 1 10 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 0 1 0 1 0 20 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 1 0 1 0 0 So now as per above tabular rules A | B will be 0 0 0 1 1 1 1 0
^ (wyลฤ cznie bitowe lub) wykonaj operacjฤ bit po bicie i postฤpuj zgodnie z poniลผszฤ tabelฤ
| A | B | A^B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
| 1 | 0 | 1 |
Byลy:-
%set A 10 %set B 20 Follow the sequence to convert decimal to binary number 128 64 32 16 8 4 2 1 10 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 0 1 0 1 0 20 binary equivalents will be 128 64 32 16 8 4 2 1 ร 0 0 0 1 0 1 0 0 So now as per above tabular rules A ^ B will be 0 0 0 1 1 1 1 0 ร 30
Operator ~ (negacji bitowej) zmienia kaลผde 1 na 0 i 0 na 1, patrz tabela jako odniesienie
| A | ~A |
|---|---|
| 0 | 1 |
| 1 | 0 |
%set A 7 %puts [expr ~$A] -8
Potrรณjny Operator (?:)
Skลadnia jest
condition-expression? expression_1: expression_2
Jeลผeli warunek-wyr jest prawdziwy, obliczane jest wyr1 i zwracany jest wynik. Jeลผeli cond-exp ma wartoลฤ false, obliczane jest wyraลผenie exp2 i zwracany jest jego wynik. W naszym przykลadzie wyraลผenie 1 jest prawdziwe, poniewaลผ wartoลฤ A jest wiฤksza niลผ 6.
%set A 7 %set result [expr $A > 6 ? true : false] %puts $result true
Shift OperaTor
Shift operator jest oznaczony albo operatorem przesuniฤcia w lewo <<, albo operatorem przesuniฤcia w prawo >>. W przypadku operatora przesuniฤcia w lewo << wartoลฤ lewego operandu jest przesuwana w lewo o liczbฤ bitรณw okreลlonฤ przez prawy operand.
%set A 7 %set result [expr $A << 2] %puts $result
W przypadku operatora przesuniฤcia w prawo >> wartoลฤ lewego operandu jest przesuwana w prawo o liczbฤ bitรณw okreลlonฤ przez prawy operand.
%set A 7 %set result [expr $A >> 2] %puts $result
Porรณwnanie ciฤ gรณw OperaTor
Operator porรณwnania ciฤ gรณw znakรณw porรณwnuje wartoลci obu operandรณw. Jeลli wartoลci operandรณw sฤ takie same, zwrรณci 1, w przeciwnym razie zwrรณci 0. W przykลadzie wartoลฤ dla A i B wynosi 7, zatem wynik zwrรณci 1.
Byลy:-
%set A 7 %set B 7 %set result [expr $A eq $B] %puts $result 1
Ne (jeลli wartoลci obu operandรณw sฤ rรณลผne, zwrรณcona zostanie wartoลฤ 1, w przeciwnym wypadku zwrรณcona zostanie wartoลฤ 0)
%set A 7 %set B 8 %set result [expr $A ne $B] %puts $result 1
Operator potฤgowania
Pow () i ** oba sฤ takie same. Zawsze zwraca wartoลฤ zmiennoprzecinkowฤ .
** wskazuje moc ลผฤ danego operandu.
Byลy:-
%set A 7 %set result [expr $A ** 2] %puts $result 49
Lista OperaTor
Jeลli wymagana wartoลฤ zostanie znaleziona na zdefiniowanej liลcie, funkcja zwraca 1, w przeciwnym razie zwraca 0. W przykลadzie wartoลฤ 1 istnieje w zmiennej โaโ, zatem funkcja zwrรณci 1.
set a {1 2 3} if {1 in $a} { puts "ok" } else { puts "fail" } Output: ok
ni, jeลli ลผฤ dana wartoลฤ zostanie znaleziona na zdefiniowanej liลcie, zwrรณci 0, w przeciwnym razie zwrรณci 1.
Byลy :-
set a {1 2 3} if {1 ni $a} { puts "ok" } else { puts "fail" } Output: fail
Kontrola przepลywu TCL i podejmowanie decyzji
Istniejฤ rรณลผne polecenia sterujฤ ce przepลywem i podejmowania decyzji, ktรณre sฤ uลผywane do zmiany przebiegu programu. Wykonania programu zawsze rozpoczynajฤ siฤ od gรณry pliku ลบrรณdลowego w dรณล.
Instrukcja if skลada siฤ z wyraลผenia logicznego, po ktรณrym nastฤpuje jedna lub wiฤcej instrukcji.
Jeลliโฆ oลwiadczenie
Skลadnia:-
jeลli wyraลผenie? to? ciaลo
jeลli wyraลผenie ma wartoลฤ true, wรณwczas wykonywana jest treลฤ polecenia.
Byลy:-
set age 10 if {$age < 20} { puts "Age is less than 20" } Output: Age is less than 20
Instrukcja if โฆ else
Skลadnia :-
Jeลli wyraลผenie? nastฤpnie body_1, w przeciwnym razie body_2
Jeลli wyraลผenie ma wartoลฤ true, zwrรณci treลฤ_1, w przeciwnym razie zwrรณci treลฤ_2
Byลy:-
set age 10 if {$age < 20} { puts "Age is less than 20" } else { Puts "Age is greater than 20" } output: Age is less than 20
Zagnieลผdลผona instrukcja if..else
Oznacza to, ลผe jednฤ instrukcjฤ if lub else..if moลผna umieลciฤ w innej instrukcji if lub else..if.
Skลadnia:-
If {expression_1} { Body_1 If {expression_2} { Body_2 } }
Byลy:-
set a 10 set b 20 if {$a == 10} { # if expression_1 is true then it will go to expression_2 if {$b == 20} { #if expression_2 is true then it will print the below string puts "value of a is 10 and b is 20" } } o/p: value of a is 10 and b is 20
Instrukcja zamiany
Instrukcja switch umoลผliwia sprawdzenie rรณwnoลci zmiennej z listฤ wartoลci. Ocenia listฤ wartoลci i zwraca wynik tej oceny. Jeลli ลผadna wartoลฤ nie pasuje, zostanฤ zwrรณcone wartoลci domyลlne.
Przykลad:
#!/usr/bin/tclsh # switch_cmd.tcl set domain x switch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" } }
Przeลฤ cznik zagnieลผdลผony
Zagnieลผdลผona instrukcja switch oznacza instrukcjฤ switch wewnฤ trz instrukcji switch.
Skลadnia :-
switch <switchingstring1> { <matchstring1> { body1 switch <switchingstring2> { <matchstring2> { body2 } ... switch <switchingstringN> { <matchStringN> { bodyN } } }
Przykลad:W poniลผszym przykลadzie wartoลฤ a wynosi 100, a za pomocฤ tego samego kodu przeลฤ czamy instrukcjฤ, aby zmieniฤ wartoลฤ b na 200. Polecenie out wyลwietli wartoลฤ zarรณwno dla a, jak i b.
#!/usr/bin/tclsh set a 100 set b 200 switch $a { 100 { puts "The value of a is $a" switch $b { 200 { puts "The value of b is $b" } } } }
Wynik:-
Wartoลฤ a wynosi 100
Wartoลฤ b wynosi 200
Instrukcja pฤtli TCL
Instrukcja pฤtli umoลผliwia wielokrotne wykonanie instrukcji lub grupy instrukcji. Tcl udostฤpnia nastฤpujฤ ce typy instrukcji pฤtli:ping komunikat.
Podczas wykonywania polecenia
Gdy dany warunek jest prawdziwy, wรณwczas powtarza siฤ instrukcja lub grupa instrukcji znajdujฤ cych siฤ w treลci pฤtli.
Skลadnia:
While {condition} {
Statements
}
Byลy :-
#!/usr/bin/tclsh Set a 10 While {$a < 12} { Puts "a is $a" incr a }
Wynik:-
a wynosi 10
a wynosi 11
W powyลผszym przykลadzie uลผyto wbudowanego polecenia โincrโ. Oznacza to, ลผe wartoลฤ โaโ bฤdzie zwiฤkszana o 1, aลผ do osiฤ gniฤcia wartoลci maksymalnej (<12).
Na polecenie
Wykonuje sekwencjฤ instrukcji wielokrotnie w oparciu o wartoลฤ licznika. Jest ona automatycznie zwiฤkszana lub zmniejszana podczas kaลผdego powtรณrzenia pฤtli.
Skลadnia :-
For {start} {test} {next} {
Body
}
Przykลad:W poniลผszym przykลadzie wartoลฤ 'i' jest ustawiona na 0 i zwiฤkszana do wartoลci <5.
#!/usr/bin/tclsh for {set i 0} {$i < 5} {incr i} { put $i }
Wynik:-
0 1 2 3 4

