Wat is TCL?

TCL is een shell-toepassing die het TCL-commando uit zijn standaardinvoer of uit een bestand leest en de gewenste resultaten geeft.

TCL is op strings gebaseerde scripttaal en ook een procedurele taal. Het werd voor het eerst gemaakt door John Osterhout in 1989. Het doel van het ontwikkelen van deze taal is easy embedded inti ( ) applicaties. De taal wordt vaak gebruikt voor GUI ‘ s en testen. Bijvoorbeeld, rapid prototyping, testen database interactie, enz., In TCL is standaard alles een string.,

  • TCL-Variabele
  • TCL-Expressie en de Operator
  • TCL flow controle en besluitvorming
  • het Uitvoeren van TCL

    Er zijn twee manieren om te voeren TCL code

    1. Windows-gebaseerde applicatie is beschikbaar hier tcltutor exe-bestand
    2. Linux-gebaseerde applicatie

    In Linux interactieve interpreter, kunnen wij de uitvoering van de TCL scripts zoals hieronder

    om toegang Te krijgen tot TCL interactieve sessie, voer je het volgende commando

    TCL scripts

    TCL-programma moet hebben .,TCL uitbreiding. Elk script in UNIX / LINUX begint met TCL shell pad

    #!/usr/bin/tclsh

    voorbeeld: –

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

    uitvoer: Hallo wereld

    In TCL wordt het commando” Puts ” gebruikt om berichten naar de console af te drukken .syntaxis van puts is lager dan

    puts?- non-newline? ?channelId? string

    • Nonewline: deze optionele parameter onderdrukt de newline karakter standaard commando. Het plaatst een nieuwe regel aan elke string
    • Channelid: deze parameter wordt gebruikt voor standaard invoerkanaal (stdin) en standaard uitvoerkanaal (stdout).,

    Ex:-

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

    TCL substitutie type

    Er zijn drie soorten substituties in Tcl

    1. Commando substitutie
    2. variabele substitutie
    3. Backslash substitutie

    laten we één voor één

    Commando substitutie

    vierkante haakjes worden gebruikt voor opdrachtvervanging.

    voorbeeld: –

    % puts % 3

    Hier wordt het commando tussen de vierkante haakjes eerst geëvalueerd. De resultaten zijn terug .”expr” gebruikt voor het uitvoeren van de rekenkundige berekening.,

    variabele substitutie

    TCL voert variabele substitutie uit met behulp van $ sign.

    voorbeeld: –

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

    Hier maken we een variabele genaamd” a “en stellen de waarde” 10 ” in.

    • puts a : het zal tekenreeks “a” afdrukken, maar niet de waarde van ‘a’ naar de console
    • puts $a : het zal de waarde van ‘a’ afdrukken naar de console

    laten we het uitvoeren en verifiëren. U krijgt de output zoals hieronder.,

    $ ./substitution.tcl

    a

    Backslash substitutie

    In Tcl wordt de backslash gebruikt voor het ontsnappen van speciale tekens en voor het verspreiden van lange commando ‘ s over meerdere regels. Elk teken onmiddellijk na de backslash zal staan zonder vervanging. In het voorbeeld hieronder, kunt u speciaal teken zien””, blijft na de backslash.

    laten we dit verifiëren met een voorbeeld

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

    opmerking: -om commentaar te geven wordt een string in TCL “#” gebruikt. Alle tekens na de ” # ” worden genegeerd door het tclsh shell commando.,

    TCL variabele

    een variabele is een identifier die een waarde bevat. Met andere woorden, een variabele is een verwijzing naar een computergeheugen, waar de waarde wordt opgeslagen.

    variabelen worden aangemaakt met “set command” en alle namen van variabelen zijn hoofdlettergevoelig. Het betekent Hallo, Hallo, Hallo iedereen is anders in TCL. Kijk naar een voorbeeld voor hoofdlettergevoelige variabele.,

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

    Output:-

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

    TCL-variabelen aanmaken

    om variabelen in TCL aan te maken, moet u de opdracht “set” gebruiken

    Set a 10

    om de waarde van de variabele te verkrijgen om het “$” symbool te gebruiken zoals

    % zet $a

    % 10

    zodat we de waarde van variabele ‘a’ krijgen als 10.

    TCL Commando Info exist

    Het ” set ” commando wordt gebruikt om variabelen aan te maken en te lezen zoals hierboven getoond. Het unset commando wordt gebruikt om een variabele te vernietigen., Het” info exists ” commando geeft 1 terug als varName bestaat als een variabele (of een array element) in de huidige context, anders geeft 0 terug. (zie voorbeeld hieronder).

    Ex: –

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

    verschillende accolades en hun gedrag

    {} -> accolades

    accolades in Tcl groepeer woorden samen tot argumenten. Accolades worden gebruikt om een blok te definiëren dat is uitgesteld – met andere woorden, het kan worden uitgevoerd na de rest van het commando op de huidige regel. Tekens binnen accolades worden doorgegeven aan een commando precies zoals geschreven.,

    een Aantal punten om te onthouden

    1. Variabele substitutie is niet toegestaan binnen {} accolades
    2. Het gebruikt voor het maken van een lijst met gegevens type

    Voorbeeld :-

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

    %ingesteld nummer {1 2 3 4 5} -> Hier een aantal gegevens van de lijst type

    %zet $getal

    %1 2 3 4 5

    -> vierkante haakjes

    de Vierkante haakjes worden gebruikt voor het maken van geneste opdracht. Simpel gezegd, uitvoer van een commando doorgegeven als argument aan een ander commando., Vierkante haakjes worden gebruikt om een blok te definiëren dat wordt uitgevoerd voor de rest van het commando op de huidige regel, en het resultaat wordt vervangen door de regel.

    Ex: –

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

    () -> ronde accolades

    Dit commando wordt gebruikt om een array-gegevenstype aan te maken en ook de operatorvoorsprong aan te geven.

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

    Hier is” a ” een array met waarde 10 en 20. Zie onderstaande opdrachten om sleutels, sleutelwaardeparen en waarden van array af te drukken.,

    voor print ” Nth ” waarde van array a, zullen we Puts $a (N)

    TCL Commandoregelargumenten

    gegevens die vanaf de commandoregel aan een script worden doorgegeven, worden argumenten genoemd. Het aantal commandoregelargumenten van een TCL-script wordt doorgegeven als de globale variabele argc . De naam van een TCL script wordt doorgegeven aan het script als de globale variabele argv0, en de rest van de commandoregel argumenten worden doorgegeven als een lijst in argv.,

    TCL heeft 3 vooraf gedefinieerde variabelen zoals

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

    • aantal argumenten doorgegeven aan de scripts: 3
    • lijst van argumenten worden doorgegeven aan het script: 10 20 30
    • de naam van het script is : ARG – script.TCL

    TCL expressie en Operator

    expressie is opgebouwd uit operanden en operatoren. Het wordt geëvalueerd met” expr ” Commando. Operators worden geëvalueerd op basis van voorrang en associativiteit., TCL-taal heeft ingebouwde operatoren zoals hieronder

    rekenkundige Operator

    een TCL-expressie bestaat uit een combinatie van operanden, operators en haakjes., Laten we zie het voorbeeld van de Rekenkundige operatoren in TCL

    + Add twee of meer operanden

    Ex:-

    %set a 10 %set b 20%puts 30

    – Trekt twee of meer operanden

    Ex:-

    %set a 20 %set b 10%puts 10

    *Vermenigvuldigen van twee of meer operanden

    %set a 20 %set b 10%puts 200

    / Verdelen van de teller door de denumerator

    %set a 20 %set b 10%puts 2

    % Modulus operator deelt de teller door de-teller, maar keert terug herinnering

    %set a 20 %set b 10%puts 0

    Relationele Operator

    Controleert of de waarde van de linker operand is groter dan de waarde van de rechter operand., Zo ja, dan wordt de voorwaarde waar en retourneer 1 anders retourneer 0.

    %set a 20 %set b 10%puts 1

    Controleer of de waarde van de linker operand kleiner is dan de waarde van de rechter operand., Zo ja, dan staat wordt waar en terug 1 else return 0

    %set a 10 %set b 20%puts 1

    >= Controleert of de waarde van de linker operand is groter dan of gelijk aan de waarde van de rechter operand zo ja, dan staat wordt waar en terug 1 else return 0

    %set a 20 %set b 10%puts 1

    <= Controleert of de waarde van de linker operand is kleiner dan of gelijk aan de waarde van de rechter operand is, zo ja dan staat wordt waar en terug 1 else return 0

    %set a 20 %set b 10%puts 0

    !,opnieuw niet gelijk dan staat wordt waar en terug 1 else return 0

    %set a 20 %set b 10%puts 1

    == Controleert of de waarden van de twee operanden gelijk zijn of niet, zo ja, dan staat wordt waar en terug 1 else return 0

    %set a 20 %set b 10%puts 0

    Logische Operator

    && Als beide operanden zijn niet-nul is, vervolgens staat wordt waar en terug 1 else return 0

    %set a 20 %set b 10%puts 1

    || Als een van de twee operanden niet nul is, dan staat wordt waar en terug 1 else return 0

    %set a 0 %set b 10%puts 1

    !, Gebruikt om het resultaat van een uitdrukking om te keren. Hier in de uitvoer kun je zien dat de waarde van ‘a’ nu 1 is geworden van 0. Terwijl de waarde van ‘b’ 0 is geworden van 1.

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

    Bitwise Operator

    & (bitwise en) voer bit-per-bit-bewerking uit en volg de onderstaande tabel voor bewerking.,/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 ( ?,:)

    syntaxis is

    condition-expression? expression_1: expression_2

    Als voorwaarde-exp waar is, wordt exp1 geëvalueerd en wordt het resultaat geretourneerd. Als de cond-exp onwaar is, wordt exp2 geëvalueerd en wordt het resultaat geretourneerd. In ons voorbeeld is exp1 waar omdat de waarde van A groter is dan 6.

    %set A 7%set result %puts $resulttrue

    Shift Operator

    Shift operator wordt aangeduid met ofwel << linker shift operator, of met de >> rechter Shift Operator., Voor << linker shift operator, wordt de waarde van de linker operanden naar links verplaatst door het aantal bits dat door de rechter operand is opgegeven.

    %set A 7%set result %puts $result

    voor de >> rechts shift operator, wordt de waarde van de linker operanden naar rechts verplaatst door het aantal bits dat door de rechter operand is opgegeven.

    %set A 7%set result %puts $result

    string Comparison Operator

    String comparison operator vergelijkt de waarde van beide operanden. Als de waarde van operand hetzelfde is, dan zal het 1 else return 0 teruggeven., In voorbeeld waarde voor zowel A en B is 7, dus resultaat return 1.

    Ex: –

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

    Ne (als de waarde van beide operand verschillend is, geeft het 1 else return 0 terug)

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

    Exponentiation operator

    Pow () en ** beide zijn hetzelfde. Het retourneert altijd zwevende waarde.

    * * geeft de macht aan voor de gewenste operand.

    Ex: –

    %set A 7%set result %puts $result49

    List Operator

    als de vereiste waarde in de gedefinieerde lijst wordt gevonden, geeft het 1 else return 0. In voorbeeld waarde 1 bestaat in variabele ‘ a ‘ dus het zal 1 retourneren.,

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

    ni, als de vereiste waarde in de gedefinieerde lijst wordt gevonden, zal het 0 teruggeven anders 1 retourneren.

    Ex: –

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

    TCL flow control and decision making

    Er zijn verschillende flow control and decision making commando ‘ s die worden gebruikt om de flow van een programma te veranderen. Programma-uitvoeringen beginnen altijd vanaf de bovenkant van het bronbestand tot aan de onderkant.

    als statement bestaat uit Booleaanse expressie gevolgd door een of meer statements.

    If … gebruik: –

    als expr ?dan?, body

    als expr wordt geëvalueerd naar true, dan wordt de body of command uitgevoerd.

    Ex: –

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

    If … gebruik: –

    als expressie ? dan body_1 else body_2

    als de expressie wordt geëvalueerd naar true, dan zal het body_1 anders zal het 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

    geneste if..else statement

    het betekent één als of anders..als verklaring kan worden geplaatst in een andere als of anders..als verklaringen., gebruik: –

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

    Ex:–

    Switch statement

    met het switch statement kan een variabele worden getest op gelijkheid met een lijst met waarden. Het evalueert de lijst van waarden en geeft het resultaat van die evaluatie terug. Als er geen waarden overeenkomen, worden de standaardwaarden geretourneerd.

    voorbeeld:

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

    geneste switch

    geneste switch statement betekent switch statement binnen een switch statement., gebruik: –

    voorbeeld: in het volgende voorbeeld is de waarde van a 100, en met dezelfde code schakelen we statement voor een andere waarde van b is 200. De out toont de waarde voor zowel a als 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:

    de waarde van A is 100

    de waarde van b is 200

    TCL Loop statement

    Loop statement maakt het mogelijk om een statement of groep van statement meerdere keren uit te voeren. Tcl biedt de volgende types van looping statement.,

    terwijl Commando

    wanneer een gegeven voorwaarde Waar is, herhaalt een statement of groep statement die zich in de lus body bevinden. gebruik:

    syntaxis:

    While {condition} { Statements}

    Ex :-

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

    uitvoer :

    a is 10

    a is 11

    in het bovenstaande voorbeeld wordt” incr ” ingebouwd commando gebruikt. Het betekent dat de waarde van ‘a’ met 1 wordt verhoogd tot de maximale waarde (<12).

    voor commando

    Het voert een reeks van statements meerdere keren uit op basis van een teller waarde., Het wordt automatisch verhoogd of verlaagd tijdens elke herhaling van de lus. gebruik: –

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

    voorbeeld: in het onderstaande voorbeeld is de waarde van ‘i’ ingesteld op 0 en verhoogd tot waarde <5.

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

    Output: –

    Articles

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *