Was ist TCL?
TCL ist eine Shell-Anwendung, die den Befehl TCL aus der Standardeingabe oder aus einer Datei liest und die gewünschten Ergebnisse liefert.
TCL ist eine String-basierte Skriptsprache und auch eine prozedurale Sprache. Es wurde erstmals 1989 von John Osterhout erstellt. Der Zweck der Entwicklung dieser Sprache ist einfach eingebettet inti ( – ) Anwendungen. Die Sprache wird häufig für GUIs und Tests verwendet. Zum Beispiel Rapid Prototyping, Testen der Datenbankinteraktion usw., In TCL ist standardmäßig alles eine Zeichenfolge.,
Ausführen von TCL
Es gibt zwei Möglichkeiten, TCL-Code auszuführen
- Windows-basierte Anwendung ist hier verfügbar tcltutor exe-Datei
- Linux-basierte Anwendung
In Linux interactive interpreter, wir können die TCL-Skripte wie folgt ausführen
Um auf die interaktive TCL-Sitzung zuzugreifen, führen Sie den folgenden Befehl aus
TCL-Skripte
TCL-Programm sollte eine haben .,tcl-Erweiterung. Jedes Skript in UNIX/LINUX beginnt mit der TCL-shell-path
#!/usr/bin/tclsh
Beispiel: –
#!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
Ausgabe: Hello World
In TCL wird der Befehl „Puts“ zum Drucken von Nachrichten an die Konsole verwendet .syntax von Puts ist unten
puts?-nonewline? ?channelId? string
- Nonewline: Dieser optionale Parameter unterdrückt standardmäßig das Zeilenumbruchzeichen. Es setzt eine neue Zeile zu jeder Zeichenfolge
- Channelid: Dieser Parameter für Standard-Eingangskanal (stdin) und Standard-Ausgangskanal (stdout) verwendet.,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
TCL Substitution typ
Es gibt drei arten von substitutionen in TCL
- Befehl substitution
- Variable substitution
- Backslash substitution
Lassen sie uns studie eine durch eine
Befehl substitution
Platz klammern werden für die Befehlsersetzung verwendet.
Beispiel: –
% puts % 3
Hier wird zuerst der Befehl zwischen den eckigen Klammern ausgewertet. Die Ergebnisse werden zurückgegeben .“expr“ für die Durchführung der arithmetischen Berechnung verwendet.,
Variablensubstitution
TCL führt Variablensubstitution mit Hilfe von $ sign durch.
Beispiel: –
#!/usr/bin/tclshset a 10puts aputs $a
Hier erstellen wir eine Variable namens“ a „und setzen den Wert“ 10 “ darauf.
- puts a : Es wird String „a“ gedruckt, aber nicht der Wert von ‚a‘ an die Konsole
- puts $a: Es wird der Wert von ‚a‘ an die Konsole
Lassen Sie es uns ausführen und überprüfen. Sie erhalten die Ausgabe wie folgt.,
$ ./substitution.tcl
a
Backslash-substitution
In Tcl, der backslash entkommen Sonderzeichen sowie für die Verbreitung lange Befehle über mehrere Zeilen. Jedes Zeichen unmittelbar nach dem Backslash wird ohne Ersatz stehen. Im folgenden Beispiel sehen Sie Sonderzeichen““, bleibt nach dem Backslash.
Lassen Sie uns dies anhand eines Beispiels überprüfen
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
HINWEIS: -Zum Kommentieren wird jede Zeichenfolge in TCL “ # “ verwendet. Alle Zeichen nach dem “ # “ werden vom Befehl tclsh shell ignoriert.,
TCL-Variable
Eine variable ist ein Bezeichner, hat einen Wert. Mit anderen Worten, eine Variable ist ein Verweis auf einen Computerspeicher, in dem der Wert gespeichert ist.
Variablen werden mit „set command“ erstellt und alle Variablennamen sind Groß-und Kleinschreibung. Es bedeutet hallo, Hallo, HALLO alle sind in TCL anders. Schauen Sie sich ein Beispiel für Groß-und Kleinschreibung an.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
Ausgabe:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
Erstellen von TCL-Variablen
Um Variablen in TCL zu erstellen, müssen Sie den Befehl „set“ verwenden
Setzen Sie eine 10
Um den Wert der Variablen zu erhalten, müssen Sie das Symbol „$“ wie
% put $a
% 10
So erhalten wir den Wert der Variablen ‚a‘ als 10.
TCL-Befehlsinformationen vorhanden
Der Befehl“ set “ wird zum Erstellen und Lesen von Variablen verwendet, wie oben gezeigt. Der Befehl unset wird verwendet, um eine Variable zu zerstören., Der Befehl“ info exists “ gibt 1 zurück, wenn varName im aktuellen Kontext als Variable (oder Array-Element) vorhanden ist, andernfalls 0. ( siehe Beispiel unten).
Ex: –
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
Verschiedene Klammern und ihr Verhalten
{} -> Geschweifte Klammern
Geschweifte Klammern in TCL gruppieren Wörter zu Argumenten. Geschweifte Klammern werden verwendet, um einen Block zu definieren, der verzögert ist – mit anderen Worten, er kann NACH dem Rest des Befehls in der aktuellen Zeile ausgeführt werden. Zeichen in geschweiften Klammern werden genau wie geschrieben an einen Befehl übergeben.,
Einige punkte zu erinnern
- Variable substitution ist nicht erlaubt innerhalb {} klammern
- Es verwendet zu erstellen liste daten typ
Beispiel :-
% set x 10% puts {$x}% $x
%set anzahl {1 2 3 4 5} -> Hier anzahl ist eine liste daten typ
%puts $number
%1 2 3 4 5
-> quadratische Klammern
Eckige Klammern werden verwendet, um verschachtelte Befehle zu erstellen. Einfach ausgedrückt, Ausgabe eines Befehls als Argument an einen anderen Befehl übergeben., Eckige Klammern werden verwendet, um einen Block zu definieren, der VOR dem Rest des Befehls in der aktuellen Zeile ausgeführt wird, und das Ergebnis wird in die Zeile eingefügt.
Beispiel: –
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
() -> runde Klammern
Dieser Befehl wird verwendet, um den Array-Datentyp zu erstellen und auch die Priorität des Operators anzugeben.
% set a(1) 10% set a(2) 20
Hier ist“ a “ ein Array mit den Werten 10 und 20. Siehe unten Befehle zum Drucken von Schlüsseln, Schlüsselwertpaaren und Werten des Arrays.,
Für den „N-ten“ Wert von Array a verwenden wir Puts $a (N)
TCL-Befehlszeilenargumente
Datenelemente, die über die Befehlszeile an ein Skript übergeben werden, werden als Argumente bezeichnet. Die Anzahl der Befehlszeilenargumente an ein Tcl-Skript wird als globale Variable argc übergeben . Der Name eines Tcl-Skripts wird als globale Variable argv0 an das Skript übergeben, und der Rest der Befehlszeilenargumente wird als Liste in argv übergeben.,
TCL hat 3 vordefinierte Variablen wie
$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 30Ausgabe:-
- Anzahl der an die Skripte übergebenen Argumente: 3
- Liste der Argumente wird an das Skript übergeben: 10 20 30
- Der Name des Skripts ist : arg – Skript.tcl
TCL Ausdruck und Operator
Ausdruck wird aus Operanden und Operatoren konstruiert. Es wird mit dem Befehl „expr“ ausgewertet. Operatoren werden basierend auf Priorität und Assoziativität ausgewertet., Die TCL-Sprache verfügt über integrierte Operatoren wie folgt
Arithmetischer Operator
Ein TCL-Ausdruck besteht aus einer Kombination von Operanden, Operatoren und Klammern., Beispiel für arithmetische Operatoren in TCL
+ Zwei oder mehr Operanden hinzufügen
Ex:-
%set a 10 %set b 20%puts 30
– Subtrahiert zwei oder mehr Operanden
Ex:-
%set a 20 %set b 10%puts 10
*Multiplizieren Sie zwei oder mehr Operanden
%set a 20 %set b 10%puts 200
/ Divide numerator by denumerator
%set a 20 %set b 10%puts 2
% Modulus operator divides numerator by de-numerator but returns numerator
%set a 20 %set b 10%puts 0
Relational Operator
Prüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist., Wenn ja, dann wird Bedingung wahr und return 1 sonst return 0.
%set a 20 %set b 10%puts 1
Überprüfen Sie, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist., Wenn ja, dann ist die Bedingung wahr wird und return 1 else return 0
%set a 10 %set b 20%puts 1
>= Prüft, ob der Wert des linken Operanden größer als oder gleich dem Wert des rechten Operanden, wenn ja, dann ist die Bedingung wahr wird und return 1 else return 0
%set a 20 %set b 10%puts 1
<= Prüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden, wenn ja, dann ist die Bedingung wahr wird und return 1 else return 0
%set a 20 %set b 10%puts 0
!,re nicht gleich dann Bedingung wird wahr und return 1 sonst return 0
%set a 20 %set b 10%puts 1
== Prüft, ob die Werte von zwei Operanden gleich sind oder nicht, wenn ja dann Bedingung wird wahr und return 1 sonst return 0
%set a 20 %set b 10%puts 0
Logische Operator
&& Wenn beide Operanden ungleich Null sind, dann wird Bedingung wahr und return 1 sonst return 0
%set a 20 %set b 10%puts 1
|| Wenn einer der beiden Operanden ungleich Null ist, dann wird Bedingung wahr und return 1 sonst return 0
%set a 0 %set b 10%puts 1
!, Wird verwendet, um das Ergebnis eines Ausdrucks umzukehren. Hier in der Ausgabe können Sie sehen, dass der Wert von ‚a‘ jetzt 1 von 0 geworden ist. Während der Wert von ‚ b ‚ von 1 zu 0 geworden ist.
%set a 0 %set b 1%puts 1%puts 0
Bitweiser Operator
& (bitweise und) Führen Sie eine bitweise Operation durch und folgen Sie der folgenden Tabelle für den Betrieb.,/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 ( ?,:)
Syntax ist
condition-expression? expression_1: expression_2
Wenn Bedingung-exp wahr ist, wird exp1 ausgewertet und das Ergebnis zurückgegeben. Wenn cond-exp false ist, wird exp2 ausgewertet und das Ergebnis zurückgegeben. In unserem Beispiel ist exp1 wahr, da der Wert von A größer als 6 ist.
%set A 7%set result %puts $resulttrue
Shift Operator
Shift operator wird entweder mit << left shift operator oder mit dem >> right shift operator bezeichnet., Für << left shift operator wird der Wert der linken Operanden um die Anzahl der vom rechten Operanden angegebenen Bits nach links verschoben.
%set A 7%set result %puts $result
Für den >> right shift operator wird der Wert der linken Operanden um die Anzahl der vom rechten Operanden angegebenen Bits nach rechts verschoben.
%set A 7%set result %puts $result
String-Vergleichsoperator
String-Vergleichsoperator vergleicht den Wert beider Operanden. Wenn der Wert des Operanden gleich ist, gibt er 1 zurück und gibt 0 zurück., Im Beispiel ist der Wert für A und B 7, daher gibt das Ergebnis 1 zurück.
Ex: –
%set A 7 %set B 7%set result %puts $result1
Ne (wenn der Wert beider Operanden unterschiedlich ist, wird 1 zurückgegeben, andernfalls 0)
%set A 7 %set B 8%set result %puts $result1
Exponentiationsoperator
Pow () und ** beide sind gleich. Es gibt immer einen schwebenden Wert zurück.
* * gibt die Leistung des gewünschten Operanden an.
Ex: –
%set A 7%set result %puts $result49
Listenoperator
Wenn der erforderliche Wert in der definierten Liste gefunden wird, gibt er 1 zurück, sonst wird 0 zurückgegeben. Im Beispiel existiert Wert 1 in der Variablen ‚a‘, daher wird 1 zurückgegeben.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, wenn der erforderliche Wert in der definierten Liste gefunden wird, gibt er 0 zurück, sonst gibt er 1 zurück.
Ex -: –
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL-Ablaufsteuerung und der Entscheidungsfindung
Es gibt verschiedene flow control und Entscheidungsfindung Befehl, die sind verwendet zu ändern den Ablauf eines Programms. Programmausführungen beginnen immer vom Anfang der Quelldatei bis zum Ende.
If-Anweisung besteht aus booleschen Ausdruck gefolgt von einer oder mehreren Anweisungen.
Wenn … Anweisung
Syntax:-
wenn expr ?dann?, body
wenn expr auf true ausgewertet wird, wird der Befehlskörper ausgeführt.
Ex -: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
Wenn … else-Anweisung
Syntax :-
Wenn der Ausdruck ? dann body_1 else body_2
Wenn der Ausdruck auf true ausgewertet wird, dann wird body_1 zurückgegeben sonst wird body_2
zurückgegeben 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
Verschachtelt if..else-Anweisung
Es bedeutet ein if oder else..if Anweisung kann in ein anderes if oder else gesetzt werden..wenn Aussagen.,
Syntax: –
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
Switch statement
Mit der switch-Anweisung kann eine Variable anhand einer Werteliste auf Gleichheit getestet werden. Es wertet die Liste der Werte aus und gibt das Ergebnis dieser Auswertung zurück. Wenn keine Werte übereinstimmen, werden Standardwerte zurückgegeben.
Beispiel:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
Verschachtelter Schalter
Verschachtelte switch Anweisung bedeutet switch Anweisung innerhalb einer switch Anweisung.,
Syntax: –
Beispiel: Im folgenden Beispiel ist der Wert von a 100, und mit demselben Code wechseln wir die Anweisung für einen anderen Wert von b ist 200. Der out zeigt den Wert für a und b an.
#!/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" } } } }
Ausgabe:
Der Wert von a ist 100
Der Wert von b ist 200
TCL Loop statement
Loop statement ermöglicht das mehrfache Ausführen einer Anweisung oder Gruppe von Anweisungen. Tcl bietet die folgenden Arten von looping-Anweisung.,
While command
Wenn eine gegebene Bedingung wahr ist, wiederholt sich eine Anweisung oder Gruppe von Anweisungen, die sich im Schleifenkörper befinden.
Syntax:
While {condition} { Statements}
Ex :-
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
Ausgabe :
a ist 10
a ist 11
Im obigen Beispiel wird der integrierte Befehl“ incr “ verwendet. Dies bedeutet, dass der Wert von ‚a‘ bis zum Maximalwert um 1 erhöht wird (<12).
For command
Es führt eine Folge von Anweisungen mehrmals basierend auf einem Zählerwert aus., Es wird während jeder Wiederholung der Schleife automatisch erhöht oder verringert.
Syntax: –
For {start} {test} {next} {Body}
Beispiel: Im folgenden Beispiel wird der Wert von ‚ i ‚ auf 0 gesetzt und bis zum Wert erhöht <5.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
Ausgabe :-