mi a TCL?
a TCL egy shell alkalmazás, amely a TCL parancsot a szabványos bemenetről vagy egy fájlból olvassa, és megadja a kívánt eredményt.
a TCL karakterlánc alapú szkriptnyelv, valamint eljárási nyelv. Először John Osterhout hozta létre 1989-ben. Ennek a nyelvnek a fejlesztése egyszerű beágyazott inti ( ) alkalmazások. A nyelv általánosan használt GUI és tesztelés. Például gyors prototípus készítés, adatbázis-interakció tesztelése stb., A TCL alapértelmezés szerint minden egy karakterlánc.,
Hogyan kell Végrehajtani a TCL
két módja Van, hogy végre TCL kód
- a Windows alapú alkalmazás itt érhető el tcltutor exe fájl
- Linux alapú alkalmazás
A Linux interaktív tolmács, végrehajthatjuk a TCL szkriptek, mint az alábbi
hozzáférést TCL interaktív munkamenet, adjuk ki a következő parancsot
TCL szkriptek
TCL program kell .,TCL kiterjesztés. A UNIX/LINUX minden szkriptje a TCL shell path
# – val kezdődik!/usr/bin/tclsh
példa: –
#!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
kimenet: Hello World
a TCL-ben a” Puts ” parancs segítségével üzeneteket nyomtathat a konzolra .a puts szintaxisa
p > puts alatt van?- nem vonalas? ?channelId? string
- Nonewline: ez az opcionális paraméter alapértelmezés szerint elnyomja a newline karaktert. Minden
- Channelid karakterlánchoz új sort helyez el: ez a standard bemeneti csatornához (stdin) és a standard kimeneti csatornához (stdout) használt paraméter.,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
TCL Helyettesítő típus
háromféle helyettesítések a TCL
- Parancs helyettesítő
- a Változó helyettesítés
- Backslash helyettesítő
tanuljunk egyenként
Parancs helyettesítő
Szögletes zárójelben a használt parancs helyettesítés.
példa: –
% puts % 3
itt először a szögletes zárójelek közötti parancsot értékelik. Az eredmények vissza .a számtani számítás elvégzéséhez használt” expr”.,
változó helyettesítés
a TCL változó helyettesítést hajt végre $ jel segítségével.
példa: –
#!/usr/bin/tclshset a 10puts aputs $a
itt egy” A “nevű változót hozunk létre, amelyhez” 10 ” értéket állítunk be.
- helyezi a : ez fog nyomtatni string “a”, de nem az értéke ” a “A konzol
- helyezi $a : akkor nyomtassa ki az értéke” a ” A konzol
let ‘s execute and verify it. A kimenetet az alábbiak szerint kapja meg.,
$ ./substitution.tcl
a
Backslash szubsztitúció
a TCL-ben a backslash speciális karakterek elkerülésére, valamint hosszú parancsok több vonalon történő terjesztésére szolgál. Bármely karakter, amely közvetlenül követi a hátlapot, helyettesítés nélkül áll. Az alábbi példában láthatja a “” speciális karaktert, amely a visszapattanás után marad.
ellenőrizzük ezt egy példával:
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
megjegyzés: -a TCL “#” bármelyik karakterláncának kommentálásához. A “#” után minden karaktert figyelmen kívül hagy a tclsh shell parancs.,
TCL változó
a változó olyan azonosító, amely rendelkezik értékkel. Más szavakkal, a változó egy számítógépes memóriára való hivatkozás, ahol az érték tárolódik.
A változókat a “set command” hozza létre, és minden változó neve eset érzékeny. Ez azt jelenti, hello, HELLO minden különböző TCL. Nézze meg néhány példát az esetérzékeny változóra.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
kimenet:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
Tcl változók létrehozása
változók létrehozásához a TCL-ben a “set” parancsot kell használni
állítsa be a 10
értéke változó kell használni “$” szimbólum, mint a
% put $a
% 10
így megkapjuk az értéke változó “a”, mint 10.
Tcl parancs Info exist
a “set” parancs a változók létrehozására és olvasására szolgál a fentiek szerint. Az unset parancs egy változó megsemmisítésére szolgál., Az “info exists” parancs 1 értéket ad vissza, ha a varName változó (vagy tömb elem) formájában létezik az aktuális kontextusban, ellenkező esetben 0 értéket ad vissza. (lásd az alábbi példát).
Ex: –
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
különböző zárójelek és viselkedésük
{}- > göndör zárójelek
göndör zárójelek a TCL csoport szavaiban együtt érvekké válnak. A göndör zárójelek egy elhalasztott blokk meghatározására szolgálnak – más szóval, az aktuális sor többi parancsa után futtatható. A zárójelben lévő karakterek pontosan az írott parancshoz kerülnek.,
- a Változó helyettesítés nem kerülhetnek {} zárójelek
- Ez létrehozásához használt lista adattípus
Például :-
% set x 10% puts {$x}% $x
%számának beállítása {1 2 3 4 5} -> Itt száma van egy lista adattípus
%helyezi $száma
%1 2 3 4 5
-> szögletes zárójelek
a Szögletes zárójelben található létrehozásához használt beágyazott parancsot. Egyszerűen fogalmazva, az egyik parancs kimenete argumentumként továbbadt egy másik parancshoz., Szögletes zárójelben definiálhatunk egy blokkot, amely a parancs többi része előtt fut az aktuális vonalon, az eredmény pedig a sorba kerül.
Ex: –
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
() -> round braces
Ez a parancs tömb adattípus létrehozására szolgál, valamint az operátor elsőbbségét jelzi.
% set a(1) 10% set a(2) 20
itt” a ” egy 10 és 20 értékű tömb. Lásd alább parancsok nyomtatni kulcsok, kulcs érték párok és értékek tömb.,
az a tömb “Nth” értékének nyomtatásához $a(N)
Tcl parancssori argumentumokat használunk
a parancssorból egy parancsfájlba átadott adatok argumentumai argumentumokként ismertek. A parancssori argumentumok száma Egy Tcl szkripthez az argc globális változóként kerül átadásra . A TCL szkript neve a globális argv0 változóként kerül a szkriptbe, a parancssori argumentumok többi része pedig argv-listaként kerül átadásra.,
TCL 3 előre definiált változók, mint a
$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 30kimenet:-
- Száma érvek telt el, hogy a szkriptek: 3
- Lista érvek át a script: 10 20 30
- a neve A forgatókönyv : arg-script.a tcl
Tcl kifejezés és operátor
kifejezés operandusokból és operátorokból épül fel. Az “expr” paranccsal értékelik. Az operátorokat precedencia és asszociativitás alapján értékelik., A TCL nyelv beépített operátorai a következők:
aritmetikai operátor
a TCL kifejezés operandusok, operátorok és zárójelek kombinációjából áll., Lássuk például az Aritmetikai operátorok a TCL
+ Add két vagy több operandusok
Ex:-
%set a 10 %set b 20%puts 30
– Micsoda két vagy több operandusok
Ex:-
%set a 20 %set b 10%puts 10
*a Halmozottan két vagy több operandusok
%set a 20 %set b 10%puts 200
/ Oszd számláló által denumerator
%set a 20 %set b 10%puts 2
% Modulus operátor osztja számláló által, de a számláló, de visszatér emlékeztető
%set a 20 %set b 10%puts 0
Relációs Operátor
Ellenőrzi, ha az értéket a bal oldali operandus nagyobb, mint az érték a jobb oldali operandus., Ha igen, akkor a feltétel igaz lesz, és 1 másik visszatér 0.
%set a 20 %set b 10%puts 1
ellenőrizze, hogy a bal operand értéke kisebb-e, mint a jobb operandus értéke., Ha igen, akkor feltétel lesz, igaz-vissza 1 más return 0
%set a 10 %set b 20%puts 1
>= Ellenőrzi, ha az értéket a bal oldali operandus nagyobb vagy egyenlő, mint az értéke igaz operandus, ha igen, akkor feltétel lesz, igaz-vissza 1 más return 0
%set a 20 %set b 10%puts 1
<= Ellenőrzi, ha az értéket a bal oldali operandus kisebb vagy egyenlő, mint az értéke igaz operandus, ha igen, akkor feltétel lesz, igaz-vissza 1 más return 0
%set a 20 %set b 10%puts 0
!,újra nem egyenlő, akkor a feltétel válik, igaz, visszatérni 1 más return 0
%set a 20 %set b 10%puts 1
== Ellenőrzi, hogy az értékek a két operandus egyenlő vagy nem, ha igen, akkor feltétel lesz, igaz-vissza 1 más return 0
%set a 20 %set b 10%puts 0
Logikai Operátor
&& Ha mindkét operandus nem nulla, akkor feltétel lesz, igaz-vissza 1 más return 0
%set a 20 %set b 10%puts 1
|| Ha a két operandus nem nulla, akkor a feltétel válik, igaz, visszatérni 1 más return 0
%set a 0 %set b 10%puts 1
!, Bármely kifejezés eredményének megfordítására szolgál. Itt a kimeneten láthatja, hogy az ” a ” értéke most 1-től 0-ig vált. Míg a ” b ” értéke 0 lett 1-től.
%set a 0 %set b 1%puts 1%puts 0
Bitenkénti operátor
& (bitenkénti és) bitenkénti művelet végrehajtása és a művelethez kövesse az alábbi táblázatot.,/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 ( ?,:)
A szintaxis
condition-expression? expression_1: expression_2
Ha a feltétel-exp igaz, az exp1 kiértékelésre kerül, és az eredmény visszatér. Ha a cond-exp hamis, akkor az exp2 kiértékelésre kerül, majd az eredmény visszakerül. Példánkban az exp1 igaz, mivel az a értéke nagyobb, mint 6.
%set A 7%set result %puts $resulttrue
Shift operátor
a Shift operátort vagy << bal shift operátor vagy a >> jobb shift operátor., << bal shift operátor esetén a bal oldali operandus értékét balra mozgatja a jobb operandus által megadott bitek száma.
%set A 7%set result %puts $result
a >> jobb shift operátor esetén a bal operandus értékét a jobb operandus által megadott bitek száma mozgatja jobbra.
%set A 7%set result %puts $result
karakterlánc-összehasonlító operátor
karakterlánc-összehasonlító operátor összehasonlítja mindkét operandus értékét. Ha az értéke operandus azonos, akkor vissza fog térni 1 else vissza 0., A példaérték mind az A, mind a B esetében 7, ezért az eredmény visszatérése 1.
Ex: –
%set A 7 %set B 7%set result %puts $result1
Ne (ha mindkét operandus értéke eltérő, akkor 1 más visszatér 0)
Exponenciációs operátor
p > Pow () és * mindkettő azonos. Mindig változó értéket ad vissza.
* * jelzi a kívánt operandus teljesítményét.
Ex: –
%set A 7%set result %puts $result49
list Operator
Ha a kívánt érték megtalálható a megadott listában, akkor visszaadja 1 else return 0. Az 1.példában az ” a ” változó létezik, így az 1.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, ha a megadott listában található szükséges érték, Akkor 0 más visszatér 1.
Ex: –
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL flow control and decision making
vannak különböző flow control and decision making command which are used to alter the flow of a program. A Program végrehajtása mindig a forrásfájl tetejétől az aljáig kezdődik.
Ha a kijelentés logikai kifejezésből áll, amelyet egy vagy több kijelentés követ.
If … utasítás
szintaxis: –
ha expr?akkor?, test
Ha az expr értéke true, akkor a parancs teste végrehajtásra kerül.
Ex: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
If … else statement
Syntax: –
if expression ? ezután body_1 else body_2
Ha az expressziót true értékre értékelik, akkor visszaadja a body_1-et, akkor visszaadja a 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
beágyazott if..else utasítás
Ez azt jelenti, egy, ha vagy máshol..ha nyilatkozatot lehet helyezni egy másik, ha vagy máshol..ha nyilatkozatok.,
szintaxis: –
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
Switch statement
a switch utasítás lehetővé teszi, hogy egy változót egyenlőségre teszteljenek az értékek listájával szemben. Értékeli az értékek listáját, és visszaadja az értékelés eredményét. Ha egyetlen érték sem egyezik, akkor az alapértelmezett értékek vissza lesznek adva.
példa:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
beágyazott switch
beágyazott switch statement azt jelenti, switch utasítás belsejében egy kapcsoló nyilatkozat.,
szintaxis: –
példa: a következő példában az a értéke 100, ugyanazzal a kóddal pedig egy másik B érték 200. A kimenet mind az a, mind a b értéket mutatja.
#!/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" } } } }
kimenet:
az a értéke 100
a b értéke 200
Tcl Loop utasítás
hurok utasítás lehetővé teszi egy utasítás vagy csoport többszöri végrehajtását. A TCL a következő típusú hurkolási nyilatkozatot nyújtja.,
míg a parancs
Ha egy adott feltétel igaz, akkor egy utasítás vagy utasításcsoport megismétlődik, amelyek a hurok testében vannak.
szintaxis:
While {condition} { Statements}
Ex :-
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
kimenet :
a 10
a 11
a fenti példában az “incr” beépített parancsot használjuk. Ez azt jelenti, hogy az”a”értéke a maximális értékig 1-gyel növekszik (<12).
a
parancshoz többször végrehajtja a kijelentések sorozatát egy számláló érték alapján., A hurok minden egyes ismétlése során automatikusan növekszik vagy csökken.
szintaxis: –
For {start} {test} {next} {Body}
példa: az alábbi példában az”i” értéke 0-ra van állítva, és a < 5 értékig növekszik.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
kimenet: –