TCL TK Tutorial: Tool Command Language

Τι είναι το TCL;

Το TCL είναι εφαρμογή φλοιού που διαβάζει την εντολή TCL από την τυπική είσοδο ή από ένα αρχείο και δίνει τα επιθυμητά αποτελέσματα.

Η TCL είναι γλώσσα δέσμης ενεργειών που βασίζεται σε συμβολοσειρές και επίσης γλώσσα διαδικασιών. Δημιουργήθηκε για πρώτη φορά από τον John Osterhout το 1989. Ο σκοπός της ανάπτυξης αυτής της γλώσσας είναι οι εύκολες ενσωματωμένες εφαρμογές ( ). Η γλώσσα χρησιμοποιείται συνήθως για GUI και δοκιμές. Για παράδειγμα, γρήγορη δημιουργία πρωτοτύπων, Δοκιμές αλληλεπίδραση βάσης δεδομένων κ.λπ. Στο TCL από προεπιλογή όλα είναι μια συμβολοσειρά.

Σε αυτό το σεμινάριο, θα μάθετε-

Πώς να εκτελέσετε το TCL

Υπάρχουν δύο τρόποι για να εκτελέσετε τον κώδικα TCL

  1. Windows Η βασισμένη εφαρμογή είναι διαθέσιμη εδώ tcltutor αρχείο exe
  2. Εφαρμογή βασισμένη στο Linux

In Linux διαδραστικό διερμηνέα, μπορούμε να εκτελέσουμε τα σενάρια TCL όπως παρακάτω

Για να αποκτήσετε πρόσβαση στη διαδραστική συνεδρία TCL, εκτελέστε την ακόλουθη εντολή

TCL Tutorial: Tool Command Language

Σενάρια TCL

Το πρόγραμμα TCL θα πρέπει να έχει επέκταση .tcl. Κάθε σενάριο στο UNIX/LINUX ξεκινά με τη διαδρομή φλοιού TCL

#!/usr/bin/tclsh

Παράδειγμα:-

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

Παραγωγή: Γειά σου Κόσμε

Στο TCL, η εντολή "Puts" χρησιμοποιείται για την εκτύπωση μηνυμάτων στην κονσόλα. Η σύνταξη των θέσεων είναι παρακάτω

βάζει;-nonewline; ?channelId? σειρά

  • Νέα γραμμή: Αυτή η προαιρετική παράμετρος καταστέλλει τον χαρακτήρα νέας γραμμής από προεπιλεγμένη εντολή. Βάζει μια νέα γραμμή σε κάθε συμβολοσειρά
  • Channelid: Αυτή η παράμετρος χρησιμοποιείται για τυπικό κανάλι εισόδου (stdin) και τυπικό κανάλι εξόδου (stdout).

Πρώην:-

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

Τύπος αντικατάστασης TCL

Υπάρχουν τρία είδη αντικαταστάσεων στο TCL

  1. Αντικατάσταση εντολών
  2. Μεταβλητή αντικατάσταση
  3. Αντικατάσταση ανάστροφης κάθετου

Ας μελετήσουμε ένα προς ένα

Αντικατάσταση εντολών

Οι αγκύλες χρησιμοποιούνται για την αντικατάσταση εντολών.

Παράδειγμα:-

% puts [expr 1*3]
% 3

Εδώ αξιολογείται πρώτα η εντολή μεταξύ των αγκύλων. Τα αποτελέσματα επιστρέφονται "expr" που χρησιμοποιείται για την εκτέλεση του αριθμητικού υπολογισμού.

Μεταβλητή αντικατάσταση

Το TCL εκτελεί μεταβλητή υποκατάσταση με τη βοήθεια του $ σημάδι.

Παράδειγμα:-

#!/usr/bin/tclsh
set  a  10
puts  a
puts  $a 

Εδώ δημιουργούμε μια μεταβλητή που ονομάζεται "a" και ορίζουμε την τιμή "10" σε αυτήν.

  • βάζει ένα : Θα εκτυπώσει συμβολοσειρά "a" αλλά όχι την τιμή του 'a' στην κονσόλα
  • puts $a : Θα εκτυπώσει την τιμή του 'a' στην κονσόλα

Ας το εκτελέσουμε και ας το επαληθεύσουμε. Θα λάβετε την έξοδο όπως παρακάτω.

$ ./substitution.tcl

a

10

Αντικατάσταση ανάστροφης κάθετου

Στο Tcl, η ανάστροφη κάθετο χρησιμοποιείται για τη διαφυγή ειδικών χαρακτήρων καθώς και για τη διάδοση μεγάλων εντολών σε πολλές γραμμές. Οποιοσδήποτε χαρακτήρας αμέσως μετά την ανάστροφη κάθετο θα παραμείνει χωρίς αντικατάσταση. Στο παρακάτω παράδειγμα, μπορείτε να δείτε τον ειδικό χαρακτήρα " ", που παραμένει μετά την ανάστροφη κάθετο.

Ας το επαληθεύσουμε αυτό με ένα παράδειγμα

#!/usr/bin/tclsh

puts "This  is my  \"car\"

$ ./backslashsubstitution.tcl
This is my "car"

ΣΗΜΕΙΩΣΗ: -Για να σχολιάσετε οποιαδήποτε συμβολοσειρά στο TCL χρησιμοποιείται "#". Όλοι οι χαρακτήρες μετά το "#" αγνοούνται από την εντολή tclsh shell.

Μεταβλητή TCL

Μια μεταβλητή είναι ένα αναγνωριστικό που έχει μια τιμή. Με άλλα λόγια, μια μεταβλητή είναι μια αναφορά σε μια μνήμη υπολογιστή, όπου αποθηκεύεται η τιμή.

Οι μεταβλητές δημιουργούνται με την "εντολή set" και όλα τα ονόματα μεταβλητών κάνουν διάκριση πεζών-κεφαλαίων. Σημαίνει γεια, Γεια, Γεια σας, όλα είναι διαφορετικά στο TCL. Δείτε κάποιο παράδειγμα για μεταβλητή με διάκριση πεζών-κεφαλαίων.

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

Παραγωγή:-

% puts $name
% Technoit

%puts  $Name
%Technoit_1

%puts $NAME
%Technoit_2

Δημιουργία μεταβλητών TCL

Για να δημιουργήσετε μεταβλητές στο TCL, πρέπει να χρησιμοποιήσετε "σειρά" εντολή

Ορίστε ένα 10

Για να λάβετε την τιμή της μεταβλητής πρέπει να χρησιμοποιήσετε το σύμβολο "$".

% βάλε $a

% 10

Έτσι παίρνουμε την τιμή της μεταβλητής 'a' ως 10.

Υπάρχουν πληροφορίες εντολών TCL

Η εντολή "set" χρησιμοποιείται για τη δημιουργία και την ανάγνωση μεταβλητών όπως φαίνεται παραπάνω. Η εντολή unset χρησιμοποιείται για την καταστροφή μιας μεταβλητής. Η εντολή "info exists" επιστρέφει 1 εάν το varName υπάρχει ως μεταβλητή (ή στοιχείο πίνακα) στο τρέχον περιβάλλον, διαφορετικά επιστρέφει 0. (δείτε παράδειγμα παρακάτω).

Υπάρχουν διάφορες εντολές "πληροφορίες" στο TCL όπως "πληροφορίες υπάρχουν", "συναρτήσεις πληροφοριών", "πληροφορίες καθολικές" και ούτω καθεξής. Εδώ θα δούμε ένα παράδειγμα του «υπάρχουν πληροφορίες».

Πρώην:-

% set a 20
% puts $a
% 20
% puts [info exists a]
% 1
% unset a
%puts [info exists a]
% 0

Διαφορετικοί νάρθηκες και η συμπεριφορά τους

{} -> Σγουρά τιράντες

Τα σγουρά άγκιστρα στο TCL ομαδοποιούν τις λέξεις μαζί για να γίνουν ορίσματα. Τα σγουρά άγκιστρα χρησιμοποιούνται για τον καθορισμό ενός μπλοκ που έχει αναβληθεί – με άλλα λόγια, μπορεί να εκτελεστεί ΜΕΤΑ την υπόλοιπη εντολή στην τρέχουσα γραμμή. Οι χαρακτήρες μέσα σε αγκύλες μεταβιβάζονται σε μια εντολή ακριβώς όπως γράφεται.

Μερικά σημεία που πρέπει να θυμάστε

  1. Δεν επιτρέπεται η αντικατάσταση μεταβλητής μέσα σε αγκύλες {}
  2. Χρησιμοποιήθηκε για τη δημιουργία τύπου δεδομένων λίστας

Παράδειγμα:-

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

%set number {1 2 3 4 5} -> Εδώ ο αριθμός είναι ένας τύπος δεδομένων λίστας

% βάζει $number

% 1 2 3 4 5

[] -> τετράγωνα σιδεράκια

Οι αγκύλες χρησιμοποιούνται για τη δημιουργία ένθετης εντολής. Με απλά λόγια, η έξοδος μιας εντολής μεταβιβάστηκε ως όρισμα σε μια άλλη εντολή. Οι αγκύλες χρησιμοποιούνται για τον καθορισμό ενός μπλοκ που εκτελείται ΠΡΙΝ την υπόλοιπη εντολή στην τρέχουσα γραμμή και το αποτέλεσμα αντικαθίσταται στη γραμμή.

Πχ: -

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

() -> στρογγυλά σιδεράκια

Αυτή η εντολή χρησιμοποιείται για τη δημιουργία τύπου δεδομένων πίνακα και επίσης για την ένδειξη προτεραιότητας τελεστή.

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

Εδώ το "a" είναι ένας πίνακας με τιμές 10 και 20. Δείτε παρακάτω εντολές για την εκτύπωση πλήκτρων, ζεύγη τιμών κλειδιών και τιμές πίνακα.

% puts [array get a] ->  To print key value pairs we use this command
% 1 10 2 20 
% puts [array names a]  -> To print only keys
% 1 2
% puts $a(1)   -> To print first value of array
% 10
% puts $a(2)  -> To print second value of array 
% 20

Για την εκτύπωση της τιμής "Nth" του πίνακα a, θα χρησιμοποιήσουμε Puts $a(N)

Ορίσματα γραμμής εντολών TCL

Τα στοιχεία δεδομένων που μεταβιβάζονται σε ένα σενάριο από τη γραμμή εντολών είναι γνωστά ως ορίσματα. Ο αριθμός των ορισμάτων της γραμμής εντολών σε ένα σενάριο Tcl μεταβιβάζεται ως καθολική μεταβλητή argc . Το όνομα ενός σεναρίου Tcl μεταβιβάζεται στο σενάριο ως καθολική μεταβλητή argv0 , και τα υπόλοιπα ορίσματα της γραμμής εντολών μεταβιβάζονται ως λίστα argv.

Το TCL έχει 3 προκαθορισμένες μεταβλητές όπως π.χ

$argc   -> indicates the number of arguments passed to the script

$argv   -> indicates list of arguments

$argv0  -> indicates the name of script

Πρώην:-

arg-script.tcl
#!/usr/bin/tclsh<
puts   "number of arguments passed to the scripts : $argc"
puts  "list of arguments are passed to the script: $argv"
puts  "the name of scripts is: $argv0"
$ ./arg-script.tcl  10 20 30

παραγωγή:-

  • Αριθμός ορισμάτων που μεταβιβάστηκαν στα σενάρια: 3
  • Η λίστα ορισμάτων μεταβιβάζεται στο σενάριο: 10 20 30
  • Το όνομα του σεναρίου είναι: arg-script.tcl

Έκφραση TCL και OperaTor

Η έκφραση κατασκευάζεται από τελεστές και τελεστές. Αξιολογείται με την εντολή "expr". OperaΟι tors αξιολογούνται με βάση την προτεραιότητα και τη συσχέτιση. Η γλώσσα TCL έχει ενσωματωμένους τελεστές όπως παρακάτω

Operator Κατηγορία Σύμβολο Προτεραιότητα/Συνδεσιμότητα
Αριθμητική OperaTor + - * / % Από αριστερά προς τα δεξιά
Σχετικός OperaTor == != < > <= >= Από αριστερά προς τα δεξιά
λογικός OperaTor && || ! Από αριστερά προς τα δεξιά
Bitwise OperaTor & | ^ ~ Από αριστερά προς τα δεξιά
Τριαδικός OperaTor ?: Δεξιά προς τα αριστερά
Shift OperaTor << >> Από αριστερά προς τα δεξιά
Σύγκριση χορδών OperaTor eq ne Από αριστερά προς τα δεξιά
Επέκταση OperaTor ** Από αριστερά προς τα δεξιά
Λιστα OperaTor Στο νι Από αριστερά προς τα δεξιά

Αριθμητική OperaTor

Μια έκφραση TCL αποτελείται από έναν συνδυασμό τελεστών, τελεστών και παρενθέσεων. Ας δούμε παράδειγμα αριθμητικών τελεστών στο TCL

+ Προσθέστε δύο ή περισσότερους τελεστές

Πρώην:-

%set a 10 
%set b 20
%puts [expr $a + $b]
30

- Αφαιρεί δύο ή περισσότερους τελεστές

Πρώην:-

%set a 20 
%set b 10
%puts [expr $a - $b]
10

*Πολλαπλασιάστε δύο ή περισσότερους τελεστές

%set a 20 
%set b 10
%puts [expr $a * $b]
200

/ Διαιρέστε τον αριθμητή με τον αριθμητή

%set a 20 
%set b 10
%puts [expr $a / $b]
2

Ο τελεστής % Modulus διαιρεί τον αριθμητή με τον αποαριθμητή αλλά επιστρέφει υπενθύμιση

%set a 20 
%set b 10
%puts [expr $a % $b]
0

Σχετικός OperaTor

Ελέγχει εάν η τιμή του αριστερού τελεστέου είναι μεγαλύτερη από την τιμή του δεξιού τελεστέου. Εάν ναι, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1, αλλιώς επιστρέφει 0.

%set a 20 
%set b 10
%puts [expr $a > $b]
1

Ελέγξτε εάν η τιμή του αριστερού τελεστή είναι μικρότερη από την τιμή του δεξιού τελεστή. Εάν ναι, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1, αλλιώς επιστρέφει 0

%set a 10 
%set b 20
%puts [expr $a < $b]
1

>= Ελέγχει εάν η τιμή του αριστερού τελεστή είναι μεγαλύτερη ή ίση με την τιμή του δεξιού τελεστή, εάν ναι, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1, αλλιώς επιστρέφει 0

%set a 20 
%set b 10
%puts [expr $a >= $b]
1

<= Ελέγχει εάν η τιμή του αριστερού τελεστή είναι μικρότερη ή ίση με την τιμή του δεξιού τελεστή, εάν ναι, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1, αλλιώς, επιστρέφει 0

%set a 20 
%set b 10
%puts [expr $a <= $b]
0

!= Ελέγχει αν οι τιμές δύο τελεστών είναι ίσες ή όχι, αν οι τιμές δεν είναι ίσες τότε η συνθήκη γίνεται αληθής και επιστρέφει 1 αλλιώς επιστρέφει 0

%set a 20 
%set b 10
%puts [expr $a != $b]
1

== Ελέγχει αν οι τιμές δύο τελεστών είναι ίσες ή όχι, αν ναι, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1 αλλιώς επιστρέφει 0

%set a 20 
%set b 10
%puts [expr $a == $b]
0

λογικός OperaTor

&& Αν και οι δύο τελεστές είναι μη μηδενικοί, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1 αλλιώς επιστρέφει 0

%set a 20 
%set b 10
%puts [expr $a && $b]
1

|| Εάν οποιοσδήποτε από τους δύο τελεστές είναι μη μηδενικός, τότε η συνθήκη γίνεται αληθής και επιστρέφει 1 αλλιώς επιστρέφει 0

%set a 0 
%set b 10
%puts [expr $a || $b]
1

! Χρησιμοποιείται για την αντιστροφή του αποτελέσματος οποιασδήποτε έκφρασης. Εδώ στην έξοδο, μπορείτε να δείτε ότι η τιμή του 'a' έχει γίνει πλέον 1 από 0. Ενώ η τιμή του 'b' έχει γίνει 0 από 1.

%set a 0 
%set b 1
%puts [expr !$a]
1
%puts [expr !$b]
0

Bitwise OperaTor

& (κατά bit και) εκτελέστε τη λειτουργία bit-bit και ακολουθήστε τον παρακάτω πίνακα για τη λειτουργία.

A B Α & Β
0 0 0
0 1 0
1 1 1
1 0 0

Πρώην:-

%set A 10
%set B 20

Follow the sequence to convert decimal to binary number
128 64 32 16 8 4 2 1
10 binary equivalents will be  
128 64 32 16 8 4 2 1  à  0 0 0 0 1 0 1 0
20 binary equivalents will be 
128 64 32 16 8 4 2 1  à  0 0 0 1 0 1 0 0

So now as per above tabular rules

A & B will be 0 0 0 0 0 0 0 0 

| (bitwise ή) εκτελέστε τη λειτουργία bit-bit και ακολουθήστε τον παρακάτω πίνακα

A B A | σι
0 0 0
0 1 1
1 1 1
1 0 1

Πρώην:-

%set A 10
%set B 20

Follow the sequence to convert decimal to binary number
128 64 32 16 8 4 2 1
10 binary equivalents will be  
128 64 32 16 8 4 2 1  à  0 0 0 0 1 0 1 0
20 binary equivalents will be 
128 64 32 16 8 4 2 1  à  0 0 0 1 0 1 0 0

So now as per above tabular rules

A | B will be 0 0 0 1 1 1 1 0 

^ (αποκλειστικά κατά bit ή) εκτελέστε τη λειτουργία bit-bit και ακολουθήστε τον παρακάτω πίνακα

A B Α ^ Β
0 0 0
0 1 1
1 1 0
1 0 1

Πρώην:-

%set A 10
%set B 20

Follow the sequence to convert decimal to binary number
128 64 32 16 8 4 2 1
10 binary equivalents will be  
128 64 32 16 8 4 2 1  à  0 0 0 0 1 0 1 0
20 binary equivalents will be 
128 64 32 16 8 4 2 1  à  0 0 0 1 0 1 0 0

So now as per above tabular rules

A ^ B will be 0 0 0 1 1 1 1 0 à 30

Ο τελεστής ~ (άρνηση bitwise) αλλάζει κάθε 1 σε 0 και 0 σε 1, ακολουθήστε τον πίνακα ως αναφορά

A ~A
0 1
1 0
%set A 7
%puts [expr ~$A]
-8

Τριαδικός Operator (?:)

Η σύνταξη είναι

condition-expression?  expression_1: expression_2

Εάν η συνθήκη-exp είναι αληθής, το exp1 αξιολογείται και το αποτέλεσμα επιστρέφεται. Εάν το cond-exp είναι false, το exp2 αξιολογείται και το αποτέλεσμά του επιστρέφεται. Στο παράδειγμά μας, το exp1 είναι αληθές καθώς η τιμή του A είναι μεγαλύτερη από 6.

%set A 7
%set result [expr $A > 6 ? true : false]
%puts $result
true

Shift OperaTor

Shift Ο τελεστής συμβολίζεται είτε με << τελεστή αριστερού μετατόπισης ή με τον >> τελεστή δεξιού μετατόπισης. Για << αριστερό τελεστή μετατόπισης, η τιμή των αριστερών τελεστών μετακινείται αριστερά κατά τον αριθμό των bit που καθορίζεται από τον δεξιό τελεστή.

%set A 7
%set result [expr $A << 2]
%puts $result

Για τον τελεστή >> δεξιά μετατόπιση, η τιμή των αριστερών τελεστών μετακινείται δεξιά κατά τον αριθμό των bit που καθορίζεται από τον δεξιό τελεστή.

%set A 7
%set result [expr $A >> 2]
%puts $result

Σύγκριση χορδών OperaTor

Ο τελεστής σύγκρισης συμβολοσειρών συγκρίνει την τιμή και των δύο τελεστών. Εάν η τιμή του τελεστή είναι ίδια, τότε θα επιστρέψει 1, αλλιώς θα επιστρέψει 0. Στο παράδειγμα, η τιμή και για το A και για το B είναι 7, επομένως θα έχει ως αποτέλεσμα την επιστροφή 1.

Πρώην:-

%set A 7 
%set B 7
%set result [expr $A eq $B]
%puts $result
1

Ne (αν η τιμή και των δύο τελεστών είναι διαφορετική, τότε θα επιστρέψει 1, αλλιώς 0)

%set A 7 
%set B 8
%set result [expr $A ne $B]
%puts $result
1

Χειριστής εκθέσεως

Το Pow () και το ** είναι και τα δύο ίδια. Επιστρέφει πάντα κυμαινόμενη τιμή.

** υποδεικνύει την ισχύ του επιθυμητού τελεστή.

Πρώην:-

%set A 7
%set result [expr $A ** 2]
%puts $result
49

Λιστα OperaTor

Εάν η απαιτούμενη τιμή βρίσκεται στην καθορισμένη λίστα, επιστρέφει 1 και επιστρέφει 0. Στο παράδειγμα, η τιμή 1 υπάρχει στη μεταβλητή 'a', επομένως θα επιστρέψει 1.

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

ni, αν βρεθεί η απαιτούμενη τιμή στην καθορισμένη λίστα, τότε θα επιστρέψει 0, διαφορετικά θα επιστρέψει 1.

Πχ: -

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

Έλεγχος ροής TCL και λήψη αποφάσεων

Υπάρχουν διάφορες εντολές ελέγχου ροής και λήψης αποφάσεων που χρησιμοποιούνται για την αλλαγή της ροής ενός προγράμματος. Οι εκτελέσεις προγραμμάτων ξεκινούν πάντα από την κορυφή του αρχείου προέλευσης προς το κάτω μέρος.

Αν η πρόταση αποτελείται από έκφραση Boole ακολουθούμενη από μία ή περισσότερες προτάσεις.

Αν ... δήλωση

Σύνταξη:-

αν expr ?τότε; σώμα

Εάν το expr αξιολογηθεί ως true, τότε εκτελείται το σώμα της εντολής.

Πρώην:-

set age 10

if {$age < 20} {
puts "Age is less than 20"
}

Output: Age is less than 20

Αν ... αλλιώς δήλωση

Σύνταξη: -

Αν έκφραση ; τότε σώμα_1 άλλο σώμα_2

Εάν η έκφραση αξιολογηθεί ως true, τότε θα επιστρέψει body_1 διαφορετικά θα επιστρέψει body_2

Πρώην:--

set age 10

if {$age < 20} {
puts "Age is less than 20"
} else {
Puts "Age is greater than 20"
}

output: Age is less than 20

Ένθετη αν..άλλο δήλωση

Σημαίνει ότι μια πρόταση if ή else..if μπορεί να μπει σε μια άλλη πρόταση if ή else..if.

Σύνταξη:-

If  {expression_1} {
Body_1
If {expression_2} {
Body_2
}
}

Πρώην:--

set a 10
set b 20

if {$a == 10} {
# if expression_1 is true then it will go to expression_2
if {$b == 20} {
#if expression_2 is true then it will print the below string
puts "value of a is 10 and b is 20"
}
}

o/p: value of a is 10 and b is 20

Δήλωση αλλαγής

Η δήλωση switch επιτρέπει τον έλεγχο μιας μεταβλητής για ισότητα έναντι μιας λίστας τιμών. Αξιολογεί τη λίστα τιμών και επιστρέφει το αποτέλεσμα αυτής της αξιολόγησης. Εάν καμία τιμή δεν ταιριάζει, τότε θα επιστραφούν οι προεπιλεγμένες τιμές.

Παράδειγμα:

#!/usr/bin/tclsh

# switch_cmd.tcl

set domain x
switch $domain {

    x { puts "x" }
    y { puts "y" }
    z { puts "z" }
    default { puts "unknown" }
}

Ένθετος διακόπτης

Ένθετη δήλωση διακόπτη σημαίνει δήλωση διακόπτη μέσα σε δήλωση διακόπτη.

Σύνταξη :-

switch <switchingstring1> {
   <matchstring1> {
      body1
      switch <switchingstring2> {
        <matchstring2> {
           body2
         }
          ...
    switch <switchingstringN> {
          <matchStringN> {
           bodyN
         }
      }
   }

Παράδειγμα: Στο παρακάτω παράδειγμα, η τιμή του a είναι 100, και με τον ίδιο κωδικό αλλάζουμε την πρόταση για μια άλλη τιμή του b είναι 200. Το out θα εμφανίσει τιμή και για το a και για το b.

#!/usr/bin/tclsh

set a 100
set b 200

switch $a {
   100 {
     puts "The value of a is $a"
     switch $b {
        200 {
           puts "The value of b is $b"
        }
     }
   }   
}

Παραγωγή:-

Η τιμή του a είναι 100

Η τιμή του b είναι 200

Δήλωση βρόχου TCL

Η δήλωση βρόχου επιτρέπει την εκτέλεση μιας δήλωσης ή μιας ομάδας δηλώσεων πολλές φορές. Το Tcl παρέχει τους ακόλουθους τύπους δηλώσεων βρόχου.

Ενώ εντολή

Όταν μια δεδομένη συνθήκη είναι αληθής, τότε επαναλαμβάνεται μια πρόταση ή μια ομάδα δηλώσεων που βρίσκονται στο σώμα του βρόχου.

Σύνταξη:

While  {condition} {
    Statements
}

Πχ: -

#!/usr/bin/tclsh

Set a 10

While {$a < 12} {
    Puts "a is $a"
    incr a
}

Παραγωγή:-

α είναι 10

α είναι 11

Στο παραπάνω παράδειγμα, χρησιμοποιείται η ενσωματωμένη εντολή "incr". Σημαίνει ότι η τιμή του 'a' θα αυξηθεί κατά 1 μέχρι τη μέγιστη τιμή (<12).

Για εντολή

Εκτελεί μια ακολουθία εντολών πολλές φορές με βάση μια τιμή μετρητή. Αυξάνεται ή μειώνεται αυτόματα κατά τη διάρκεια κάθε επανάληψης του βρόχου.

Σύνταξη :-

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

Παράδειγμα: Στο παρακάτω παράδειγμα, η τιμή του 'i' ορίζεται στο 0 και αυξάνεται μέχρι την τιμή <5.

#!/usr/bin/tclsh

for {set i 0} {$i < 5} {incr i} {
put $i
}

Παραγωγή:-

0 
1 
2 
3 
4

Περίληψη:

  • Η TCL είναι γλώσσα δέσμης ενεργειών που βασίζεται σε συμβολοσειρές και επίσης γλώσσα διαδικασιών
  • Η γλώσσα χρησιμοποιείται συνήθως για GUI και δοκιμές
  • Στο TCL από προεπιλογή όλα είναι συμβολοσειρά
  • Το TCL είναι εφαρμογή φλοιού που διαβάζει την εντολή TCL από την τυπική είσοδο ή από ένα αρχείο και δίνει τα επιθυμητά αποτελέσματα.
  • Το πρόγραμμα TCL θα πρέπει να έχει επέκταση .tcl