Co to jest TCL?
TCL jest aplikacją powłoki, która odczytuje polecenie TCL ze standardowego wejścia lub z pliku i daje pożądane rezultaty.
TCL jest językiem skryptowym opartym na łańcuchach znaków, a także językiem proceduralnym. Po raz pierwszy został stworzony przez Johna Osterhouta w 1989 roku. Celem rozwoju tego języka jest łatwe osadzanie aplikacji inti (). Język jest powszechnie używany do Gui i testowania. Na przykład szybkie prototypowanie, testowanie interakcji z bazą danych itp., W TCL domyślnie Wszystko jest ciągiem znaków.,
jak wykonać kod TCL
istnieją dwa sposoby wykonania kodu TCL
- aplikacja oparta na systemie Windows jest dostępna tutaj plik tcltutor exe
- aplikacja oparta na Linuksie
w interaktywnym Interpreterze Linuksa możemy wykonać Skrypty TCL jak poniżej
aby uzyskać dostęp do interaktywnej sesji 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/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
Wyjście: Hello World
W TCL polecenie „Puts” jest używane do drukowania wiadomości do konsoli .składnia puts jest poniżej
puts?- nonewline? ?channelId? string
- Nonewline: ten opcjonalny parametr domyślnie wyłącza znak nowej linii. Dodaje nowy wiersz do każdego łańcucha
- Channelid: parametr używany dla standardowego kanału wejściowego (stdin) i standardowego kanału wyjściowego (stdout).,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
Typ podstawienia Tcl
istnieją trzy rodzaje podstawień w TCL
- podstawienie poleceń
- Podstawienie zmiennych
- Podstawienie ukośnika wstecznego
zbadajmy jeden po drugim
podstawienie poleceń
nawiasy kwadratowe są używane do zastępowania poleceń.
przykład: –
% puts % 3
tutaj Komenda między nawiasami kwadratowymi jest obliczana jako pierwsza. Wyniki są zwracane .”expr” służy do wykonywania obliczeń arytmetycznych.,
podstawianie zmiennych
TCL wykonuje podstawianie zmiennych przy pomocy $ sign.
przykład: –
#!/usr/bin/tclshset a 10puts aputs $a
tutaj tworzymy zmienną o nazwie „a” i ustawiamy jej wartość „10”.
- puts a: wyświetli ciąg znaków „a”, ale nie wartość ” a „do konsoli
- puts $a : wyświetli wartość” a ” do konsoli
wykonajmy i sprawdźmy to. Otrzymasz wynik jak poniżej.,
$ ./substitution.tcl
a
backslash substitution
w Tcl, odwrotny ukośnik jest używany do interpretacji znaków specjalnych, jak również do rozprzestrzeniania długich poleceń w wielu wierszach. Każdy znak bezpośrednio po odwrotnym ukośniku będzie stał bez zastępowania. W poniższym przykładzie można zobaczyć znak specjalny””, pozostaje po odwróconym ukośniku.
sprawdźmy to na przykładzie
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
uwaga: -aby skomentować dowolny ciąg znaków w TCL „#” jest używany. Wszystkie znaki po ” # ” są ignorowane przez polecenie tclsh shell.,
zmienna TCL
zmienna jest identyfikatorem, który zawiera wartość. Innymi słowy, zmienna jest odniesieniem do pamięci komputera, gdzie wartość jest przechowywana.
zmienne są tworzone za pomocą polecenia set i wszystkie nazwy zmiennych uwzględniają wielkość liter. To znaczy hello, Hello, HELLO wszystkie są inne w TCL. Spójrz na przykład dla zmiennej uwzględniającej wielkość liter.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
Wyjście:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
Tworzenie zmiennych TCL
aby utworzyć zmienne w TCL, musisz użyć polecenia „set”
Ustaw 10
aby uzyskać wartość zmiennej musi używać symbolu „$” jak
% put $a
% 10
więc otrzymujemy wartość zmiennej 'a' jako 10.
informacja o Komendzie TCL exist
polecenie „set” służy do tworzenia i odczytu zmiennych, jak pokazano powyżej. Polecenie unset służy do zniszczenia zmiennej., Polecenie „info exists” zwraca 1 jeśli varName istnieje jako zmienna (lub element tablicy) w bieżącym kontekście, w przeciwnym razie zwraca 0. (patrz przykład poniżej).
Ex: –
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
Różne aparaty ortodontyczne i ich zachowanie
{}- >Kręcone aparaty ortodontyczne
Kręcone aparaty ortodontyczne w słowach grupy TCL razem, aby stać się argumentami. Nawiasy klamrowe są używane do definiowania bloku, który jest odroczony – innymi słowy, może być uruchamiany po pozostałej części polecenia w bieżącej linii. Znaki w nawiasach są przekazywane do polecenia dokładnie tak, jak napisano.,
niektóre punkty do zapamiętania
- substytucja zmiennej nie jest dozwolona wewnątrz {} szelek
- służy do tworzenia typu danych listy
przykład :-
% set x 10% puts {$x}% $x
%set number {1 2 3 4 5} -> tutaj numer jest listą typ danych
%puts $number
%1 2 3 4 5
-> nawiasy kwadratowe
nawiasy kwadratowe są używane do tworzenia zagnieżdżonych poleceń. Mówiąc najprościej, wyjście jednego polecenia przekazywane jako argument do innego polecenia., Nawiasy kwadratowe są używane do definiowania bloku, który jest uruchamiany przed resztą polecenia w bieżącej linii, a wynik jest podstawiany do linii.
Ex: –
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
()- > okrągłe szelki
To polecenie jest używane do tworzenia typu danych tablicy, a także wskazuje pierwszeństwo operatora.
% set a(1) 10% set a(2) 20
tutaj „a” jest tablicą o wartościach 10 i 20. Patrz poniższe polecenia, aby wydrukować klucze, pary wartości klawiszy i wartości tablicy.,
dla wypisania „n-tej” wartości tablicy a, użyjemy Puts $a(n)
argumenty linii poleceń TCL
elementy danych przekazywane do skryptu z linii poleceń są znane jako argumenty. Liczba argumentów wiersza poleceń do skryptu Tcl jest przekazywana jako globalna zmienna argc . Nazwa skryptu Tcl jest przekazywana do skryptu jako globalna zmienna argv0, a reszta argumentów wiersza poleceń jest przekazywana jako lista w argv.,
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
Ex:–
arg-script.tcl#!/usr/bin/tclsh$ ./arg-script.tcl 10 20 30wyjście:-
- liczba argumentów przekazywanych do skryptów: 3
- lista argumentów przekazywanych do skryptu: 10 20 30
- nazwa skryptu to : ARG – script.tcl
wyrażenie TCL i Operator
wyrażenie jest zbudowane z operandów i operatorów. Jest oceniany za pomocą polecenia „expr”. Operatory są oceniane na podstawie pierwszeństwa i asocjacji., Język TCL ma wbudowane operatory jak poniżej
Operator arytmetyczny
wyrażenie TCL składa się z kombinacji operandów, operatorów i nawiasów., Zobacz przykład operatorów arytmetycznych w TCL
+ dodaj dwa lub więcej operandów
Ex:-
%set a 10 %set b 20%puts 30
– odejmuje dwa lub więcej operandów
Ex:-
%set a 20 %set b 10%puts 10
*pomnożyć dwa lub więcej operandów
%set a 20 %set b 10%puts 200
/ dzielenie licznika przez denumerator
%set a 20 %set b 10%puts 2
% Operator modułu dzieli licznik przez de-licznik, ale zwraca przypomnienie
%set a 20 %set b 10%puts 0
Operator relacyjny
sprawdza, czy wartość lewego operandu jest większa niż wartość WŁAŚCIWEGO operandu., Jeżeli tak, wtedy warunek staje się true i zwraca 1 else zwraca 0.
%set a 20 %set b 10%puts 1
sprawdź, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu., Jeśli tak, to warunek staje się true i zwraca 1 else zwraca 0
%set a 10 %set b 20%puts 1
>= sprawdza czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, to warunek staje się true i zwraca 1 else zwraca 0
%set a 20 %set b 10%puts 1
<= sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, to warunek staje się true i zwraca 1 else zwraca 0
%set a 20 %set b 10%puts 0
!,re not equal wtedy warunek staje się true i zwraca 1 else zwraca 0
%set a 20 %set b 10%puts 1
== sprawdza czy wartości dwóch operandów są równe czy nie, jeśli tak, to warunek staje się true i zwraca 1 else zwraca 0
Operator logiczny
&&jeśli oba operandy są niezerowe, to warunek staje się true i zwraca 1 else zwraca 0
%set a 20 %set b 10%puts 1
|| Jeśli którykolwiek z dwóch operandów jest niezerowy, to warunek staje się true i zwraca 1 else zwraca 0
%set a 0 %set b 10%puts 1
!, Służy do odwrócenia wyniku dowolnego wyrażenia. Tutaj na wyjściu możesz zobaczyć, że wartość 'a' stała się teraz 1 z 0. Natomiast wartość ” b ” stała się 0 z 1.
%set a 0 %set b 1%puts 1%puts 0
Operator bitowy
& (bitowe i) wykonuj operację bit po bitie i postępuj zgodnie z poniższą tabelą dla operacji.,/td>
Ex:-
%set A 10%set B 20Follow the sequence to convert decimal to binary number128 64 32 16 8 4 2 110 binary equivalents will be 128 64 32 16 8 4 2 1 à 0 0 0 0 1 0 1 020 binary equivalents will be 128 64 32 16 8 4 2 1 à 0 0 0 1 0 1 0 0So now as per above tabular rulesA ^ B will be 0 0 0 1 1 1 1 0 à 30
~ (bitwise negation) operator changes each 1 to 0 and 0 to 1, follow the table as reference
A | ~A |
---|---|
0 | 1 |
1 | 0 |
%set A 7%puts -8
Ternary Operator ( ?,:)
składnia jest
condition-expression? expression_1: expression_2
jeśli warunek-exp jest true, exp1 jest obliczane i zwracany jest wynik. Jeśli cond-exp jest false, to exp2 jest obliczane i zwracany jest jego wynik. W naszym przykładzie, exp1 jest prawdziwe, ponieważ wartość A jest większa niż 6.
%set A 7%set result %puts $resulttrue
Operator zmiany
operator zmiany jest oznaczony przez << operator zmiany lewej lub przez >> prawy operator zmiany., Dla operatora<< wartość lewego operanda jest przesuwana w lewo o liczbę bitów określoną przez prawy operand.
%set A 7%set result %puts $result
dla>> wartość lewego operanda jest przesuwana w prawo o liczbę bitów określoną przez prawy operand.
%set A 7%set result %puts $result
operator porównania łańcuchów
operator porównania łańcuchów porównuje wartość obu operandów. Jeżeli wartość operand jest taka sama, wtedy zwróci 1 else zwróci 0., W przykładzie wartość dla A i B wynosi 7, zatem wynik zwraca 1.
Ex: –
%set A 7 %set B 7%set result %puts $result1
Ne (jeśli wartość obu operandów jest inna, zwróci 1, w przeciwnym razie zwróci 0)
%set A 7 %set B 8%set result %puts $result1
operator wykładniczy
Pow () i ** oba są takie same. Zawsze zwraca zmienną wartość.
** wskazuje moc żądanego operandu.
Ex: –
%set A 7%set result %puts $result49
Operator listy
jeśli wymagana wartość znajduje się na zdefiniowanej liście, zwraca 1 else zwraca 0. W przykładzie wartość 1 istnieje w zmiennej 'a', stąd zwróci 1.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, jeśli wymagana wartość znajdzie się na zdefiniowanej liście, to zwróci 0 else zwróci 1.
Ex: –
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL flow control and decision making
istnieją różne polecenia sterowania przepływem i podejmowania decyzji, które są używane do zmiany przepływu programu. Wykonywanie programu zawsze zaczyna się od góry pliku źródłowego do dołu.
Jeśli polecenie składa się z wyrażenia logicznego, po którym następuje jedno lub więcej poleceń.
Jeśli … Instrukcja
składnia: –
if expr ?więc?, body
Jeżeli expr zostanie obliczone na true, wtedy zostanie wykonana treść polecenia.
Ex: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
If … else polecenie
składnia: –
If wyrażenie ? następnie body_1 else body_2
Jeśli wyrażenie zostanie ocenione na true, to zwróci body_1 else zwróci body_2
Ex:–
set age 10if {$age < 20} {puts "Age is less than 20"} else {Puts "Age is greater than 20"}output: Age is less than 20
zagnieżdżone if..polecenie else
oznacza ono if lub else..polecenie if można umieścić wewnątrz innego if lub else..if statements.,
składnia: –
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
Instrukcja Switch
Instrukcja Switch umożliwia sprawdzenie równości zmiennej względem listy wartości. Ocenia listę wartości i zwraca wynik tej oceny. Jeśli żadne wartości nie pasują, zostaną zwrócone wartości domyślne.
przykład:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
zagnieżdżona Instrukcja Switch
zagnieżdżona Instrukcja Switch oznacza instrukcję Switch wewnątrz instrukcji switch.,
składnia: –
przykład: w poniższym przykładzie wartość a wynosi 100, a w tym samym kodzie zamieniamy instrukcję na inną wartość b wynosi 200. Wyjście wyświetli wartość zarówno dla a, jak i b.
#!/usr/bin/tclshset a 100set b 200switch $a { 100 { puts "The value of a is $a" switch $b { 200 { puts "The value of b is $b" } } } }
Output:
wartość a wynosi 100
wartość b wynosi 200
Instrukcja pętli TCL
Instrukcja Loop umożliwia wielokrotne wykonywanie instrukcji lub grupy instrukcji. Tcl udostępnia następujące typy instrukcji looping.,
While polecenie
gdy dany warunek jest true, to polecenie lub grupa instrukcji powtarza się, które znajdują się w ciele pętli.
składnia:
While {condition} { Statements}
Ex: –
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
Wyjście:
a to 10
a to 11
w powyższym przykładzie użyto wbudowanego polecenia „incr”. Oznacza to, że wartość 'a' zostanie zwiększona o 1 do wartości maksymalnej (<12).
dla polecenia
wykonuje sekwencję poleceń wiele razy na podstawie wartości licznika., Jest on automatycznie zwiększany lub zmniejszany 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 inkrementowana do wartości<5.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
Wyjście: –