Vad är TCL?

TCL är skalprogram som läser TCL-kommandot från sin standardinmatning eller från en fil och ger önskade resultat.

TCL är strängbaserat skriptspråk och även ett procedurspråk. Det skapades först av John Osterhout 1989. Syftet med att utveckla detta språk är lätt inbäddade inti () applikationer. Språket används ofta för GUIs och testning. Till exempel snabb prototypning, Testdatabasinteraktion etc., I TCL som standard är allt en sträng.,

  • Tcl variabel
  • Tcl uttryck och operatör
  • TCL flödeskontroll och beslutsfattande
  • hur man utför TCL

    det finns två sätt att köra TCL-kod

    1. Windows-baserad applikation finns här tcltutor exe-fil
    2. Linux-baserad applikation

    i Linux-baserade program nteraktiv tolk, kan vi köra tcl-skript enligt nedan

    för att komma åt tcl interaktiv session, kör följande kommando

    tcl-skript

    TCL-programmet ska ha en .,TCL förlängning. Varje skript i UNIX / LINUX börjar med TCL shell path

    #!/usr/bin/tclsh

    exempel: –

    #!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl

    Output: Hello World

    i Tcl används kommandot ”Puts” för att skriva ut meddelanden till konsolen .syntax av puts är under

    sätter?-nonewline? ?channelId? string

    • Nonewline: den här valfria parametern undertrycker det nya tecknet som standardkommando. Det sätter en ny linje till varje sträng
    • Channelid: denna parameter används för standard input channel (stdin) och standard output channel (stdout).,

    Ex:-

    %puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World

    Tcl Substitutionstyp

    det finns tre typer av substitutioner i TCL

    1. Command substitution
    2. variabel substitution
    3. Backslash substitution

    låt oss studera en efter en

    Command substitution

    hakparenteser används för kommandobyte.

    exempel: –

    % puts % 3

    här utvärderas kommandot mellan hakparenteserna först. Resultaten returneras .”expr” används för att utföra den aritmetiska beräkningen.,

    variabel substitution

    TCL utför variabel substitution med hjälp av $ sign.

    exempel: –

    #!/usr/bin/tclshset a 10puts aputs $a 

    här skapar vi en variabel som heter ”A” och anger värdet ”10” till det.

    • sätter ett: det kommer att skriva ut strängen” A ”men inte värdet av” A ”till konsolen
    • sätter $a: det kommer att skriva ut värdet av” a ” till konsolen

    låt oss utföra och verifiera det. Du kommer att få utdata enligt nedan.,

    $ ./substitution.tcl

    a

    Backslash substitution

    i Tcl används backslashen för att undkomma specialtecken samt för att sprida långa kommandon över flera rader. Varje tecken som omedelbart följer backslash kommer att stå utan substitution. I exemplet nedan kan du se specialtecken ” ”, förblir efter bakslaget.

    låt oss verifiera detta med ett exempel

    #!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"

    OBS: -För att kommentera någon sträng i tcl ”#” används. Alla tecken efter ” # ” ignoreras av tclsh shell-kommandot.,

    Tcl-variabel

    en variabel är en identifierare som har ett värde. Med andra ord är en variabel en referens till ett datorminne, där värdet lagras.

    variabler skapas av ”set command” och alla variabelnamn är skiftlägeskänsliga. Det betyder hej, hej, hej alla är olika i TCL. Titta på något exempel för skiftlägeskänslig variabel.,

    % set name Techoit% set Name Technoit_1% set NAME Technoit_2

    Output: –

    % puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2

    skapa Tcl-variabler

    för att skapa variabler i TCL måste du använda kommandot ”set”

    Ställ in en 10

    för att få värdet av variabeln måste du använda ” $ ”- symbolen som

    för att få värdet av variabeln måste p>

    % sätta $a

    % 10

    så vi får värdet av variabeln ” a ” som 10.

    Tcl Command Info finns

    kommandot ”set” används för att skapa och läsa variabler som visas ovan. Kommandot unset används för att förstöra en variabel., Kommandot” info finns ” returnerar 1 om varName finns som en variabel (eller ett matriselement) i det aktuella sammanhanget, annars returnerar 0. (se exempel nedan).

    Ex: –

    % set a 20% puts $a% 20% puts % 1% unset a%puts % 0

    olika hängslen och deras beteende

    {}- > lockiga hängslen

    lockiga hängslen i TCL gruppord tillsammans för att bli argument. Curly braces används för att definiera ett block som är uppskjutet – med andra ord kan det köras efter resten av kommandot på den aktuella raden. Tecken inom hängslen skickas till ett kommando exakt som skrivet.,

    vissa punkter att komma ihåg

    1. variabel substitution är inte tillåtet inuti {} hängslen
    2. Det används för att skapa listdatatyp

    exempel :-

    % set x 10% puts {$x}% $x

    %set number {1 2 3 4 5} -> här numret är en lista datatyp

    %sätter $nummer

    %1 2 3 4 5

    – > fyrkantiga hängslen

    hakparenteser används för att skapa kapslade kommando. Enkelt uttryckt, utmatning av ett kommando passerade som argument till ett annat kommando., Hakparenteser används för att definiera ett block som körs före resten av kommandot på den aktuella raden, och resultatet ersätts i raden.

    Ex: –

    % set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10

    ()- > runda hängslen

    det här kommandot används för att skapa matrisdatatyp och anger också operatörsprecidens.

    % set a(1) 10% set a(2) 20

    Här ”A” är en array med värde 10 och 20. Se nedan kommandon för att skriva ut nycklar, nyckelvärdespar och värden för array.,

    För Skriv ut ”Nth” värdet av array a, kommer vi att använda sätter $a(N)

    Tcl kommandoradsargument

    dataposter som skickas till ett skript från kommandoraden kallas argument. Antalet kommandoradsargument till ett TCL-skript skickas som den globala variabeln argc . Namnet på ett TCL-skript skickas till skriptet som den globala variabeln argv0, och resten av kommandoradsargumenten skickas som en lista i argv.,

    TCL har 3 fördefinierade variabler som

    $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

    output:-

    • antal argument som skickas till skripten: 3
    • lista över argument skickas till skriptet: 10 20 30
    • namnet på skriptet : 10 20 30
    • namnet på skriptet: 10 20 är: arg – script.Tcl

    Tcl uttryck och operatör

    uttryck är konstruerat från operander och operatörer. Det utvärderas med kommandot ”expr”. Operatörerna utvärderas utifrån företräde och associativitet., Tcl language har inbyggda operatörer enligt nedan

    aritmetisk operatör

    ett TCL-uttryck består av en kombination av operander, operatörer och parenteser., Låt se exempel på aritmetiska operatörer i TCL

    + Lägg till två eller flera operander

    Ex:-

    %set a 10 %set b 20%puts 30

    – subtraherar två eller flera operander

    Ex:-

    %set a 20 %set b 10%puts 10

    *multiplicera två eller flera operander

    %set a 20 %set b 10%puts 200

    / Divide täljare av denumerator

    %set a 20 %set b 10%puts 2

    % modulus operator delar täljare av täljare men returnerar påminnelse

    %set a 20 %set b 10%puts 0

    relationsoperatör

    kontrollerar om värdet på vänster operand är större än värdet på höger operand., Om ja, då villkoret blir sant och returnera 1 else return 0.

    %set a 20 %set b 10%puts 1

    kontrollera om värdet på vänster operand är mindre än värdet på höger operand., Om ja, då villkoret blir sant och returnera 1 else return 0

    %set a 10 %set b 20%puts 1

    >= kontrollerar om värdet av vänster operand är större än eller lika med värdet av höger operand, om ja då villkoret blir sant och returnera 1 else return 0

    %set a 20 %set b 10%puts 1

    <= kontrollerar om värdet på vänster operand är mindre än eller lika med värdet på höger operand, om ja blir villkoret sant och returnera 1 else return 0

    %set a 20 %set b 10%puts 0

    !,re not equal then condition becomes true and return 1 else return 0

    %set a 20 %set b 10%puts 1

    = kontrollerar om värdena för två operander är lika eller inte, Om ja då villkoret blir sant och retur 1 else return 0

    %set a 20 %set b 10%puts 0

    logisk operatör

    && om båda operanderna inte är noll, blir tillståndet sant och returnera 1 else return 0

    %set a 20 %set b 10%puts 1

    || om någon av de två operanderna inte är noll, blir tillståndet sant och returnera 1 else return 0

    %set a 0 %set b 10%puts 1

    !, Används för att vända resultatet av något uttryck. Här i utgången kan du se värdet av ” a ” har nu blivit 1 från 0. Medan värdet av ” b ” har blivit 0 från 1.

    %set a 0 %set b 1%puts 1%puts 0

    Bitwise Operator

    & (bitwise och) utför bit för bit och följ nedanstående tabell för drift.,/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 ( ?,:)

    syntaxen är

    condition-expression? expression_1: expression_2

    om condition-exp är sant utvärderas exp1 och resultatet returneras. Om cond-exp är falskt utvärderas exp2 och resultatet returneras. I vårt exempel är exp1 sant eftersom värdet av A är större än 6.

    %set A 7%set result %puts $resulttrue

    Shift Operator

    Shift operator betecknas med antingen<< vänster shift operator, eller av>> höger shift operator., För<< vänster Shift-operatör flyttas det vänstra operandvärdet till vänster med det antal bitar som anges av höger operand.

    %set A 7%set result %puts $result

    för >> höger shift-operatör flyttas det vänstra operandvärdet direkt med det antal bitar som anges av höger operand.

    %set A 7%set result %puts $result

    String Comparison Operator

    String comparison operator jämför värdet för båda operanderna. Om operandens värde är detsamma kommer det att returnera 1 else return 0., I exempelvärde för både A och B är 7, därför resultat avkastning 1.

    Ex: –

    %set A 7 %set B 7%set result %puts $result1

    Ne (om värdet på båda operanderna är olika kommer det att returnera 1 else return 0)

    %set A 7 %set B 8%set result %puts $result1

    Exponentiationsoperatör

    Pow () och ** båda är desamma. Det returnerar alltid flytande värde.

    ** anger strömmen till önskad operand.

    Ex: –

    %set A 7%set result %puts $result49

    Listoperatör

    om det önskade värdet hittades i den definierade listan returnerar den 1 else return 0. I exempelvärde 1 finns i variabeln ”a”, så kommer den att returnera 1.,

    set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok

    ni, om det önskade värdet hittades i den definierade listan kommer det att returnera 0 else return 1.

    Ex: –

    set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail

    TCL flödeskontroll och beslutsfattande

    det finns olika flödeskontroll och beslutsfattande kommando som används för att ändra flödet av ett program. Programutförande startar alltid från toppen av källfilen till botten.

    om Satsen består av booleskt uttryck följt av en eller flera satser.

    If … statement

    Syntax: –

    om expr?då?, body

    om expr utvärderas till true, körs kommandotolken.

    Ex: –

    set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20

    If … else statement

    Syntax: –

    If expression? sedan body_1 else body_2

    om uttrycket utvärderas till Sant, kommer det att returnera body_1 else det kommer att returnera 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

    kapslade om..else statement

    det betyder en if eller annat..om uttalande kan sättas in i en annan om eller annat..om uttalanden.,

    Syntax: –

    If {expression_1} {Body_1If {expression_2} {Body_2}}

    Ex:–

    Switch statement

    switch statement gör att en variabel kan testas för jämlikhet mot en lista med värden. Den utvärderar listan över värden och returnerar resultatet av den utvärderingen. Om inga värden matchar kommer standardvärdena att returneras.

    exempel:

    #!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}

    kapslade switch

    kapslade switch statement betyder switch statement inuti en switch statement.,

    Syntax: –

    exempel: i följande exempel är värdet av a 100, och med samma kod byter vi uttalande för ett annat värde av B är 200. Out kommer att visa värde för både A och 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:

    värdet av A är 100

    värdet av B är 200

    Tcl Loop statement

    Loop statement tillåter att utföra ett uttalande eller en grupp av statement flera gånger. Tcl ger följande typer av looping uttalande.,

    medan kommandot

    När ett givet tillstånd är sant upprepas ett uttalande eller en grupp av uttalande som finns i slingkroppen.

    Syntax:

    While {condition} { Statements}

    Ex: –

    #!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}

    utgång:

    A är 10

    a är 11

    i ovanstående exempel används ”incr” inbyggt kommando. Det betyder att värdet av ” a ” kommer att ökas med 1 till det maximala värdet (<12).

    för kommandot

    det utför en sekvens av uttalanden flera gånger baserat på ett motvärde., Det ökas automatiskt eller minskas under varje upprepning av slingan.

    Syntax: –

    For {start} {test} {next} {Body}

    exempel: i exemplet nedan är värdet ’i’ inställt på 0 och ökat till-värde <5.

    #!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}

    utgång: –

    Articles

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *