Hvad er TCL?
TCL er shell program, der læser TCL kommando fra sin standard input eller fra en fil og giver de ønskede resultater.
TCL er streng baseret scriptsprog og også en proceduremæssig sprog. Det blev først oprettet af John Osterhout i 1989. Formålet med at udvikle dette sprog er let indlejret inti ( ) applikationer. Sproget er almindeligt anvendt til GUI ‘ er og test. For eksempel rapid prototyping, test database interaktion, etc., I TCL som standard er alt en streng.,
Hvordan man kan Udføre TCL
Der er to måder at udføre TCL-kode
- Windows-baseret program, er tilgængelig her tcltutor exe-fil
- Linux-baseret program
I Linux interaktive tolk, kan vi udføre TCL scripts som under
for At få adgang til TCL interaktiv session, kør den følgende kommando
TCL scripts
TCL program bør have en .,TCL udvidelse. Hvert script i UNI! /Linu! starter med TCL shell path
#!eksempel: –
#!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
Output: Hello Worldorld
i Tcl bruges kommandoen “Puts” til at udskrive meddelelser til konsollen .syntaks af puts er under
sætter?- None ?line? ?channelId? string
- None .line: denne valgfri parameter undertrykker ne .line-tegnet som standardkommando. Det sætter en ne .line til hver streng
- Channelid: denne parameter bruges til standard input channel (stdin) og standard output channel (stdout).,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
TCL Substitution type
Der er tre former for udskiftninger i TCL
- Command substitution
- Variabel substitution
- Backslash substitution
Lad os studere én efter én
Command substitution
Firkantede parenteser bruges til command substitution. eksempel: –
% puts % 3
Her evalueres kommandoen mellem de firkantede parenteser først. Resultaterne returneres .”e .pr” bruges til at udføre den aritmetiske beregning.,
variabel substitution
TCL udfører variabel substitution ved hjælp af $ tegn. eksempel: –
#!/usr/bin/tclshset a 10puts aputs $a
Her opretter vi en variabel kaldet “A” og indstiller værdien “10” til den.
- sætter A: det udskriver streng “a”, men ikke værdien af ‘ a ‘ til konsollen
- sætter $A : det udskriver værdien af ‘a’ til konsollen
lad os udføre og verificere det. Du får output som nedenfor.,
$ ./substitution.tcl
en
Backslash substitution
I Tcl, backslash bruges til at undslippe specielle tegn, såvel som for spredning lange kommandoer på tværs af flere linjer. Ethvert tegn umiddelbart efter backslash vil stå uden substitution. I eksemplet nedenfor kan du se specialtegn””, forbliver efter backslash.
lad os bekræfte dette med et eksempel
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
BEMÆRK: -For at kommentere bruges enhver streng i TCL”#”. Alle tegn efter ” # ” ignoreres af tclsh shell-kommandoen.,
TCL variabel
en variabel er en identifikator, der har en værdi. Med andre ord er en variabel en henvisning til en computerhukommelse, hvor værdien er gemt.
variabler oprettes af “set command”, og alle variabelnavne er store og små bogstaver. Det betyder Hej, Hej, Hej alle er forskellige i TCL. Kig på nogle eksempel for store og små bogstaver variabel.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
Output:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
Oprettelse af TCL Variabler
for At oprette variabler i TCL, du er nødt til at “indstille” kommando
der ligger 10
for At opnå den værdi af variabel er nødt til at bruge ” $ ” – symbol, som
% sætte $a
% 10
Så får vi værdien af variablen ‘a’ som 10.
TCL Kommandoinfo findes
kommandoen “set” bruges til at oprette og læse variabler som vist ovenfor. Kommandoen unset bruges til at ødelægge en variabel., Kommandoen “info e existsists” returnerer 1 hvis varName eksisterer som en variabel (eller et array element) i den aktuelle kontekst, ellers returnerer 0. (se eksempel nedenfor).
Ex:-
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
Forskellige seler og deres adfærd
{} -> Krøllede parenteser
Krøllede parenteser i TCL gruppe ord sammen til at blive argumenter. Krøllede seler bruges til at definere en blok, der er udskudt – med andre ord kan den køres efter resten af kommandoen på den aktuelle linje. Tegn inden seler er gået til en kommando præcis som skrevet.,
Nogle punkter at huske
- Variabel substitution er ikke tilladt inde i {} seler
- Det bruges til at oprette listen datatype
Eksempel :-
% set x 10% puts {$x}% $x
%antal {1 2 3 4 5} -> Her nummer er en liste af data-type
%sætter $antal
%1 2 3 4 5
-> square seler
Firkantede parenteser bruges til at oprette indlejrede kommando. Kort sagt, output af en kommando bestået som argument til en anden kommando., Firkantede parenteser bruges til at definere en blok, der kører før resten af kommandoen på den aktuelle linje, og resultatet erstattes i linjen.
Ex: –
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
() -> runde seler
Denne kommando bruges til at skabe array data type og også angive erhvervsdrivende forud.
% set a(1) 10% set a(2) 20
Her er “A” et array med værdi 10 og 20. Se kommandoer nedenfor for at udskrive nøgler, nøgleværdipar og værdier for array.,
for print “Nth” værdi af array a, vil vi bruge sætter $a(n)
TCL kommandolinjeargumenter
dataelementer overført til et script fra kommandolinjen er kendt som argumenter. Antallet af kommandolinjeargumenter til et Tcl-script overføres som den globale variabel argc . Navnet på et TCL-script overføres til scriptet som den globale variabel argv0, og resten af kommandolinjeargumenterne overføres som en liste i argv.,
TCL har 3 pre-definerede variabler så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 30output:-
- Antal argumenter videre til scripts: 3
- Liste af argumenter er gået til scriptet: 10 20 30
- navnet på Det script, er : arg-script.TCL
TCL e .pression and Operator
E Expressionpression er konstrueret ud fra operander og operatorer. Det evalueres med” e .pr ” kommando. Operatørerne vurderes på grundlag af forrang og associativitet., TCL sprog har indbyggede operatører som nedenfor
aritmetisk operatør
et TCL-udtryk består af en kombination af operander, operatører og parenteser., Lad se eksempel på Aritmetiske operatorer i TCL
+ Add to eller flere operander
Ex:-
%set a 10 %set b 20%puts 30
– Trækker to eller flere operander
Ex:-
%set a 20 %set b 10%puts 10
*Ganger to eller flere operander
%set a 20 %set b 10%puts 200
Dividere tælleren med denumerator
%set a 20 %set b 10%puts 2
% Modulus operatoren dividere tælleren med de-tælleren, men vender tilbage påmindelse
%set a 20 %set b 10%puts 0
Relationel Operator
Kontrollerer, om værdien af venstre operand er større end værdien af den højre operand., Hvis ja, bliver betingelsen sand og returnerer 1 ellers returnerer 0.
%set a 20 %set b 10%puts 1
Kontroller, om værdien af venstre operand er mindre end værdien af den højre operand., Hvis ja, så er betingelsen bliver sand og returnere 1 else return 0
%set a 10 %set b 20%puts 1
>= Kontrollerer, om værdien af venstre operand er større end eller lig med værdien til højre operand, hvis ja så er betingelsen bliver sand og returnere 1 else return 0
%set a 20 %set b 10%puts 1
<= Kontrollerer, om værdien af venstre operand er mindre end eller lig med værdien til højre operand, hvis ja så er betingelsen bliver sand og returnere 1 else return 0
%set a 20 %set b 10%puts 0
!,re ikke lige så betingelsen bliver sand og returnere 1 else return 0
%set a 20 %set b 10%puts 1
== Kontrol, hvis værdierne af to operander er lig med eller ikke, hvis ja så er betingelsen bliver sand og returnere 1 else return 0
%set a 20 %set b 10%puts 0
Logisk Operator
&& Hvis begge operander er ikke-nul, så betingelsen bliver sand og returnere 1 else return 0
%set a 20 %set b 10%puts 1
|| Hvis en af de to operander er ikke-nul, så er betingelsen bliver sand og returnere 1 else return 0
%set a 0 %set b 10%puts 1
!, Bruges til at vende resultatet af ethvert udtryk. Her i output, kan du se værdien af ‘ a ‘ er nu blevet 1 fra 0. Mens værdien af ‘ b ‘ er blevet 0 fra 1.
%set a 0 %set b 1%puts 1%puts 0
Bitvis Operator
& (bitvise og udføre lidt efter lidt, drift og følge nedenstående tabel for driften.,/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 ( ?,:)
syntaks er
condition-expression? expression_1: expression_2
Hvis betingelse-e .p er sandt, e .p1 evalueres og resultatet returneres. Hvis cond-e .p er falsk, e .p2 evalueres og dens resultat returneres. I vores eksempel er e .p1 sandt, da værdien af A er større end 6.
%set A 7%set result %puts $resulttrue
Skift Operator
Skift operatør er angivet ved enten << venstre skift operatør, eller >> højre-skift operator., For << venstre skiftoperatør flyttes den venstre operand-værdi til venstre med det antal bits, der er angivet af den højre operand.
%set A 7%set result %puts $result
For >> højre-skift operator, venstre operander værdi er flyttet lige med antallet af bits, der er angivet af den højre operand.
%set A 7%set result %puts $result
String sammenligning operatør
String sammenligning operatør sammenligner værdien af begge operander. Hvis værdien af operand er den samme, returnerer den 1 ellers retur 0., I eksempel værdi for både A og B er 7, Derfor resultat afkast 1.
Ex:-
%set A 7 %set B 7%set result %puts $result1
Ne (hvis værdien af begge operand er forskellige, så vil det vende tilbage 1 else return 0)
%set A 7 %set B 8%set result %puts $result1
Eksponentiering operatør
Pow () og ** både er den samme. Det returnerer altid flydende værdi.
** angiver strømmen til den ønskede operand.
e.: –
%set A 7%set result %puts $result49
List Operator
Hvis den krævede værdi findes i den definerede liste, returnerer den 1 ellers retur 0. I eksempel værdi 1 findes i variabel ‘ a ‘ dermed det vil returnere 1.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, hvis den krævede værdi findes i den definerede liste, returnerer den 0 ellers retur 1.
Ex :-
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL flow kontrol og beslutningstagning
Der er forskellige flow kontrol og beslutningstagning kommando, der bruges til at ændre strømmen af et program. Program henrettelser starter altid fra toppen af kildefilen til bunden.
hvis udsagn består af Boolesk udtryk efterfulgt af en eller flere udsagn.
Hvis … erklæring
syntaks: –
Hvis e ?pr ?så?, body
Hvis e .pr evalueres til true, udføres kommandokroppen.
e If: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
Hvis … else erklæring
syntaks: –
Hvis udtryk ? derefter body_1 ellers body_2
Hvis udtrykket evalueres til sandt, vil det returnere body_1 ellers vil det returnere body_2
e.:–
set age 10if {$age < 20} {puts "Age is less than 20"} else {Puts "Age is greater than 20"}output: Age is less than 20
indlejret hvis..else erklæring
det betyder en hvis ellers..hvis erklæring kan sættes inde i en anden, hvis ellers..hvis udsagn.,
Syntaks:-
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
Switch-sætning
switch-sætning gør det muligt for en variabel, for at blive testet for ligestilling, mod en liste af værdier. Den evaluerer listen over værdier og returnerer resultatet af denne evaluering. Hvis ingen værdier matcher, returneres standardværdier.
Eksempel:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
Indlejrede skifte
Indlejrede skifte erklæring betyder, switch-sætning inden i en switch-sætning.,
syntaks: –
eksempel: i det følgende eksempel er værdien af a 100, og med den samme kode skifter vi erklæring for en anden værdi af B er 200. Det vil vise værdien for både a og 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ærdien af a er 100
værdien af b er 200
TCL Loop-sætningen.
Loop-sætningen giver mulighed for at udføre en sætning eller en gruppe af sætning flere gange. Tcl giver følgende typer af looping erklæring.,
mens kommandoen
Når en given betingelse er sand, gentages en erklæring eller gruppe af udsagn, som er i sløjfekroppen.
Syntax:
While {condition} { Statements}
Ex :-
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
Output :
10
der er 11
I ovenstående eksempel, at “øge” indbygget kommando bruges. Det betyder, at værdien af ‘ a ‘vil blive forhøjet med 1 indtil den maksimale værdi (<12).
for kommando
det udfører en sekvens af udsagn flere gange baseret på en tæller værdi., Det øges eller formindskes automatisk under hver gentagelse af sløjfen.
Syntaks :-
For {start} {test} {next} {Body}
Eksempel: I nedenstående eksempel værdien af ‘jeg’ er sat til 0 og forøges, indtil værdi <5.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
udgang: –