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.,

  • zmienna TCL
  • wyrażenie i Operator Tcl
  • kontrola przepływu TCL i podejmowanie decyzji
  • jak wykonać kod TCL

    istnieją dwa sposoby wykonania kodu TCL

    1. aplikacja oparta na systemie Windows jest dostępna tutaj plik tcltutor exe
    2. 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

    1. podstawienie poleceń
    2. Podstawienie zmiennych
    3. 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

    1. substytucja zmiennej nie jest dozwolona wewnątrz {} szelek
    2. 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 30

    wyjś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>

    0 0 1 1 1 1 0 1 0 1

    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: –

    Articles

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *