ce este TCL?TCL este o aplicație shell care citește comanda TCL de la intrarea sa standard sau dintr-un fișier și dă rezultatele dorite. TCL este un limbaj de scripting bazat pe string și, de asemenea, un limbaj procedural. A fost creat pentru prima dată de John Osterhout în 1989. Scopul dezvoltării acestui limbaj este ușor încorporat inti () aplicații. Limba este frecvent utilizată pentru GUI și testare. De exemplu, prototiparea rapidă, testarea interacțiunii bazei de date etc., În TCL, în mod implicit, totul este un șir.,
Cum să Execute TCL
Există două moduri de a executa TCL cod
- Windows pe bază de cerere este disponibil aici tcltutor fișier exe
- Bazat pe Linux de aplicare
În Linux interactiv, putem executa TCL script-uri de mai jos
Pentru a accesa TCL sesiune interactivă, executați următoarea comandă
TCL script-uri
TCL program ar trebui să aibă un .,extensie tcl. Fiecare script în UNIX / LINUX începe cu TCL Shell path
#!/usr/bin/tclsh
Exemplu:
#!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
Ieșire: Hello World
În TCL, „Pune” Comandă este utilizată pentru a imprima mesaje la consola .sintaxa puts este mai jos
puts?- non-linie? ?channelId? string
- Nonewline: acest parametru opțional suprimă caracterul newline prin comanda implicită. Se pune o linie nouă pentru fiecare șir
- Channelid: acest parametru utilizat pentru standard input channel (stdin) și standard output channel (stdout).,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
TCL Substituție de tip
Există trei tipuri de substituții în TCL
- Comanda de substituție
- Variabile de substituție
- Backslash de substituție
Să studiem unul câte unul,
Comanda de substituție
paranteze drepte sunt utilizate pentru comanda de substituție.
exemplu: –
% puts % 3
aici este evaluată mai întâi comanda dintre parantezele pătrate. Rezultatele sunt returnate .”expr” utilizat pentru efectuarea calculului aritmetic., TCL efectuează substituția variabilă cu ajutorul semnului$.
exemplu: –
#!/usr/bin/tclshset a 10puts aputs $a
aici vom crea o variabilă numită” a „și setați valoarea” 10 ” la ea.
- pune a : va imprima șirul „a”, dar nu valoarea lui ” a „în consolă
- pune $a : va imprima valoarea lui” a ” în consolă
să o executăm și să o verificăm. Veți obține ieșirea ca mai jos.,
$ ./substitution.tcl
a
înlocuirea Backslash
în Tcl, backslash-ul este folosit pentru a scăpa de caractere speciale, precum și pentru a răspândi comenzi lungi pe mai multe linii. Orice caracter imediat după backslash va rămâne fără înlocuire. În exemplul de mai jos, puteți vedea caracterul special””, rămâne după backslash.
să verificăm acest lucru cu un exemplu
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
notă: -pentru a comenta orice șir din TCL „#” este folosit. Toate caracterele după ” # ” sunt ignorate de comanda shell tclsh.,
TCL variabilă
o variabilă este un identificator care deține o valoare. Cu alte cuvinte, o variabilă este o referință la o memorie a computerului, unde valoarea este stocată.
variabilele sunt create de „set command” și toate numele variabilelor sunt sensibile la litere mari și mici. Înseamnă salut, salut, salut toate sunt diferite în TCL. Uitați-vă la un exemplu pentru variabila sensibilă la caz.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
Ieșire:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
Crearea TCL Variabile
Pentru a crea variabile în TCL, aveți nevoie pentru a utiliza „set” de comandă
Set de 10
Pentru a obține valoarea variabilei trebuie să utilizați „$” simbol ca
% pus $o
% 10
Așa că am obține valoarea variabilei ” a ” de 10.
TCL Command Info există
comanda „set” este utilizată pentru a crea și citi variabilele așa cum se arată mai sus. Comanda unset este utilizată pentru a distruge o variabilă., Comanda” info exists ” returnează 1 dacă varName există ca o variabilă (sau un element de matrice) în contextul curent, altfel returnează 0. (vezi exemplul de mai jos).
Ex:
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
bretele Diferite și comportamentul lor
{} -> acolade
acolade în TCL group cuvinte împreună pentru a deveni argumente. Bretelele ondulate sunt folosite pentru a defini un bloc care este amânat – cu alte cuvinte, acesta poate fi rulat după restul comenzii pe linia curentă. Caracterele din bretele sunt transmise unei comenzi exact așa cum este scris.,
Unele puncte să ne amintim
- Variabile de substituție nu este permis în interiorul {} aparat dentar
- Este folosit pentru a crea lista tip de date
Exemplu :
% set x 10% puts {$x}% $x
%seta numărul {1 2 3 4 5} -> Aici este o lista tip de date
%pune $numar
%1 2 3 4 5
-> metru de aparat dentar
parantezele Pătrate sunt folosite pentru a crea imbricate comanda. Pur și simplu pune, ieșire de o comandă trecut ca argument la o altă comandă., Parantezele pătrate sunt utilizate pentru a defini un bloc care este rulat înainte de restul comenzii pe linia curentă, iar rezultatul este înlocuit în linie.
Ex:
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
() -> runda aparat dentar
Această comandă este utilizată pentru a crea matrice tip de date și, de asemenea, indica ordinea de efectuare a operațiilor.
% set a(1) 10% set a(2) 20
aici „a” este o matrice cu valoarea 10 și 20. A se vedea mai jos comenzi pentru a imprima chei, perechi de valori cheie și valori de matrice.,
pentru imprimarea valorii „Nth” a matricei a, vom folosi Puts $a(N)
argumentele liniei de comandă TCL
elementele de date transmise unui script din linia de comandă sunt cunoscute sub numele de argumente. Numărul de argumente de linie de comandă la un script Tcl este trecut ca variabila globală argc . Numele unui script Tcl este trecut la script ca variabila globală argv0, iar restul argumentelor liniei de comandă sunt trecute ca o listă în argv.,
TCL are 3 variabile pre-definite, cum ar fi
$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 30ieșire:-
- Numărul de argumente transmise script-uri: 3
- Lista de argumente sunt transmise script-ul: 10 20 30
- numele de script-ul este : arg-script.tcl
expresia TCL și operatorul
expresia este construită din operanzi și operatori. Este evaluat cu comanda „expr”. Operatorii sunt evaluați pe baza precedenței și asociativității., Limbajul TCL are operatori încorporați ca mai jos
Operator aritmetic
o expresie TCL constă dintr-o combinație de operanzi, operatori și paranteze., Să vedem de exemplu operatorii Aritmetici în TCL
+ Adăugați doi sau mai mulți operanzi
Ex:
%set a 10 %set b 20%puts 30
– Scade doi sau mai mulți operanzi
Ex:-
%set a 20 %set b 10%puts 10
*se Multiplica doi sau mai mulți operanzi
%set a 20 %set b 10%puts 200
/ Împarte numărătorul de denumerator
%set a 20 %set b 10%puts 2
% Modul operator împarte numărătorul de de-numărător dar se întoarce memento
%set a 20 %set b 10%puts 0
Operator Relațional
Verifică dacă valoarea din stânga operand este mai mare decât valoarea operand dreapta., Dacă da, atunci condiția devine adevărată și întoarcere 1 altceva întoarcere 0.
%set a 20 %set b 10%puts 1
verificați dacă valoarea operandului stâng este mai mică decât valoarea operandului drept., Dacă da, atunci condiția devine adevărată și return 1 else return 0
%set a 10 %set b 20%puts 1
>= Verifică dacă valoarea din stânga operand este mai mare decât sau egală cu valoarea de operand dreapta, dacă da, atunci condiția devine adevărată și return 1 else return 0
%set a 20 %set b 10%puts 1
<= Verifică dacă valoarea operand stânga este mai mică decât sau egală cu valoarea de operand dreapta, dacă da, atunci condiția devine adevărată și return 1 else return 0
%set a 20 %set b 10%puts 0
!,re nu este egal, atunci condiția devine adevărată și return 1 else return 0
%set a 20 %set b 10%puts 1
== Verifică dacă valorile celor doi operanzi sunt egale sau nu, dacă da, atunci condiția devine adevărată și return 1 else return 0
%set a 20 %set b 10%puts 0
Operator Logic
&& Dacă ambii operanzi sunt non-zero, apoi condiție devine adevărată și return 1 else return 0
%set a 20 %set b 10%puts 1
|| Dacă vreunul dintre cei doi operanzi este non-zero, atunci condiția devine adevărată și return 1 else return 0
%set a 0 %set b 10%puts 1
!, Folosit pentru a inversa rezultatul oricărei expresii. Aici, în ieșire, puteți vedea valoarea lui ” a ” a devenit acum 1 de la 0. În timp ce valoarea ” b ” a devenit 0 de la 1.
%set a 0 %set b 1%puts 1%puts 0
Operator Bitwise
& (bitwise și) efectuați operația bit by bit și urmați tabelul de mai jos pentru funcționare.,/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 ( ?,:)
Sintaxa este
condition-expression? expression_1: expression_2
Dacă starea-exp este true, exp1 este evaluată și rezultatul este returnat. Dacă cond-exp este fals, exp2 este evaluat și rezultatul său este returnat. În exemplul nostru, exp1 este adevărat, deoarece valoarea A este mai mare decât 6.
%set A 7%set result %puts $resulttrue
Tura Operator
Tura operator este notată cu ori << shift stânga operatorului, sau de >> shift din dreapta operatorului., Pentru << shift stânga operatorului, stânga operanzi valoare este mutat la stânga cu numărul de biți specificați de operand dreapta.
%set A 7%set result %puts $result
Pentru >> shift din dreapta operatorului, stânga operanzi valoare este mutat de numărul de biți specificați de operand dreapta.
%set A 7%set result %puts $result
operatorul de comparare a șirurilor
operatorul de comparare a șirurilor compară valoarea ambilor operanzi. Dacă valoarea operandului este aceeași, atunci se va întoarce 1 else return 0., În exemplu, valoarea pentru ambele A și B este 7, prin urmare, rezultat întoarcere 1.
Ex:
%set A 7 %set B 7%set result %puts $result1
Ne (dacă valoarea de ambii operanzi sunt diferite, atunci se va returna 1 else return 0)
%set A 7 %set B 8%set result %puts $result1
Exponentiala operator
Pow () și ** ambele sunt același lucru. Întotdeauna returnează valoarea plutitoare.
* * indică puterea operandului dorit.
Ex: –
%set A 7%set result %puts $result49
list Operator
dacă valoarea necesară Găsită în lista definită, returnează 1 else return 0. În exemplu, valoarea 1 există în variabila „a”, prin urmare, se va întoarce 1.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, în cazul în care valoarea necesară Găsită în lista definită, atunci se va întoarce 0 altfel întoarcere 1.
Ex :
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL fluxului de control și de luare a deciziilor
Există diverse fluxului de control și de luare a deciziilor de comandă care sunt utilizate pentru a modifica fluxul de un program. Execuțiile programului încep întotdeauna din partea de sus a fișierului sursă până în partea de jos. dacă declarația constă dintr-o expresie booleană urmată de una sau mai multe declarații.
dacă … dacă expr ?atunci?, dacă expr este evaluat la true, atunci corpul de comandă este executat.
Ex: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
dacă … altfel declarație
sintaxa: –
dacă expresia ? apoi body_1 altceva body_2
Dacă expresia este evaluată la true, atunci se va reveni body_1 altfel se va reveni 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
Imbricate dacă..altfel declarație
aceasta înseamnă una dacă sau altceva..dacă declarația poate fi pusă în interiorul altui dacă sau altceva..dacă declarații.,
sintaxa: –
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
instrucțiunea Switch permite testarea unei variabile pentru egalitate față de o listă de valori. Acesta evaluează lista de valori și returnează rezultatul evaluării respective. Dacă nu se potrivesc valori, atunci valorile implicite vor fi returnate.
Exemplu:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
switch Imbricate
Imbricate comutator declarație înseamnă declarația de comutare în interiorul unui switch., exemplu: în exemplul următor, valoarea a este 100, și cu același cod vom comuta declarație pentru o altă valoare a b este 200. Out va afișa valoarea pentru ambele a ș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:
valoarea a este 100
valoarea b este 200
TCL buclă declarație
buclă declarație permite executarea unei declarații sau grup de declarație de mai multe ori. Tcl oferă următoarele tipuri de declarație looping.,
în timp ce comanda
când o anumită condiție este adevărată, atunci o declarație sau un grup de repetiții care se află în corpul buclei.
Sintaxa:
While {condition} { Statements}
Ex :
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
Ieșire :
o este de 10
o e 11
În exemplul de mai sus, „incr” built-in de comandă este utilizat. Aceasta înseamnă că valoarea lui „a”va fi mărită cu 1 până la valoarea maximă (<12).
pentru comanda
se execută o secvență de declarații de mai multe ori pe baza unei valori contra., Acesta este crescut sau scăzut automat în timpul fiecărei repetări a buclei.
Sintaxa :
For {start} {test} {next} {Body}
Exemplu: În exemplu de mai jos valoarea de ” eu ” este setat la 0 și crește până la valoarea <5.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
ieșire: –