टीसीएल टीके ट्यूटोरियल: टूल कमांड लैंग्वेज

टीसीएल क्या है?

टीसीएल एक शेल अनुप्रयोग है जो अपने मानक इनपुट या फ़ाइल से टीसीएल कमांड पढ़ता है और वांछित परिणाम देता है।

TCL स्ट्रिंग आधारित स्क्रिप्टिंग भाषा है और एक प्रक्रियात्मक भाषा भी है। इसे सबसे पहले 1989 में जॉन ओस्टरहाउट ने बनाया था। इस भाषा को विकसित करने का उद्देश्य आसान एम्बेडेड इंटी () एप्लीकेशन है। इस भाषा का इस्तेमाल आमतौर पर GUI और परीक्षण के लिए किया जाता है। उदाहरण के लिए, रैपिड प्रोटोटाइपिंग, परीक्षण डेटाबेस इंटरैक्शन, आदि। TCL में डिफ़ॉल्ट रूप से सब कुछ एक स्ट्रिंग है।

इस ट्यूटोरियल में आप सीखेंगे-

टीसीएल को कैसे क्रियान्वित करें

TCL कोड निष्पादित करने के दो तरीके हैं

  1. Windows आधारित आवेदन यहाँ उपलब्ध है tcltutor exe फ़ाइल
  2. लिनक्स आधारित अनुप्रयोग

In Linux इंटरैक्टिव इंटरप्रेटर, हम नीचे दिए अनुसार TCL स्क्रिप्ट निष्पादित कर सकते हैं

TCL इंटरैक्टिव सत्र तक पहुंचने के लिए, निम्नलिखित कमांड निष्पादित करें

TCL ट्यूटोरियल: टूल कमांड लैंग्वेज

टीसीएल स्क्रिप्ट

TCL प्रोग्राम में .tcl एक्सटेंशन होना चाहिए। UNIX/LINUX में हर स्क्रिप्ट TCL शेल पथ से शुरू होती है

#!/usr/बिन/tclsh

उदाहरण:-

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

उत्पादन: नमस्ते दुनिया

टीसीएल में, "पुट्स" कमांड का उपयोग कंसोल पर संदेश प्रिंट करने के लिए किया जाता है। पुट का सिंटैक्स नीचे दिया गया है

puts?-nonewline? ?channelId? स्ट्रिंग

  • नोन्यूलाइन: यह वैकल्पिक पैरामीटर डिफ़ॉल्ट कमांड द्वारा न्यूलाइन वर्ण को दबा देता है। यह प्रत्येक स्ट्रिंग में एक नई लाइन डालता है
  • चैनलिड: यह पैरामीटर मानक इनपुट चैनल (stdin) और मानक आउटपुट चैनल (stdout) के लिए उपयोग किया जाता है।

पूर्व:-

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

TCL प्रतिस्थापन प्रकार

टीसीएल में तीन प्रकार के प्रतिस्थापन हैं

  1. आदेश प्रतिस्थापन
  2. चर प्रतिस्थापन
  3. बैकस्लैश प्रतिस्थापन

आइये एक-एक करके अध्ययन करें

आदेश प्रतिस्थापन

वर्गाकार कोष्ठकों का उपयोग कमांड प्रतिस्थापन के लिए किया जाता है।

उदाहरण:-

% puts [expr 1*3]
% 3

यहाँ वर्गाकार कोष्ठकों के बीच दिए गए आदेश का पहले मूल्यांकन किया जाता है। परिणाम लौटाए जाते हैं। "expr" जिसका उपयोग अंकगणितीय गणना करने के लिए किया जाता है।

चर प्रतिस्थापन

टीसीएल किसकी सहायता से परिवर्तनीय प्रतिस्थापन करता है? $ संकेत।

उदाहरण:-

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

यहां हम “a” नामक एक वेरिएबल बनाते हैं और इसका मान “10” सेट करते हैं।

  • puts a : यह कंसोल पर स्ट्रिंग “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 शेल कमांड द्वारा अनदेखा कर दिया जाता है।

टीसीएल वेरिएबल

एक चर एक पहचानकर्ता है जो एक मान रखता है। दूसरे शब्दों में, एक चर कंप्यूटर मेमोरी का एक संदर्भ है, जहाँ मान संग्रहीत होता है।

वेरिएबल्स को "सेट कमांड" द्वारा बनाया जाता है और सभी वेरिएबल नाम केस सेंसिटिव होते हैं। इसका मतलब है कि 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 कमांड जानकारी मौजूद है

"सेट" कमांड का उपयोग वैरिएबल बनाने और पढ़ने के लिए किया जाता है जैसा कि ऊपर दिखाया गया है। अनसेट कमांड का उपयोग वैरिएबल को नष्ट करने के लिए किया जाता है। "सूचना मौजूद है" कमांड 1 लौटाता है यदि varName वर्तमान संदर्भ में एक वैरिएबल (या एक सरणी तत्व) के रूप में मौजूद है, अन्यथा 0 लौटाता है। (नीचे उदाहरण देखें)।

TCL में कई “info” कमांड हैं जैसे “info exists”, “info Functions”, “info global”, इत्यादि। यहाँ हम “info exists” का एक उदाहरण देखेंगे।

पूर्व:-

% 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

सरणी a का “Nth” मान प्रिंट करने के लिए, हम Puts $a(N) का उपयोग करेंगे

TCL कमांड-लाइन तर्क

कमांड लाइन से स्क्रिप्ट को पास किए गए डेटा आइटम को तर्क कहा जाता है। Tcl स्क्रिप्ट को कमांड लाइन तर्कों की संख्या वैश्विक चर के रूप में पास की जाती है एर्गसी Tcl स्क्रिप्ट का नाम स्क्रिप्ट को वैश्विक चर के रूप में पास किया जाता है argv0 , और बाकी कमांड लाइन तर्कों को एक सूची के रूप में पास किया जाता है अर्जीवी.

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

टीसीएल अभिव्यक्ति और Operaटो

अभिव्यक्ति ऑपरेंड और ऑपरेटर से निर्मित होती है। इसका मूल्यांकन "expr" कमांड से किया जाता है। Operaटॉर्स का मूल्यांकन वरीयता और संबद्धता के आधार पर किया जाता है। TCL भाषा में नीचे दिए गए अंतर्निहित ऑपरेटर हैं

Operaटोर श्रेणी चिन्ह पूर्वता/सहसंबंध
अंकगणित Operaटो + - * / % दाएँ से बाएँ
संबंधपरक Operaटो == != < > <= >= बाएं से दायां
तार्किक Operaटो && || ! बाएं से दायां
बिटवाइज़ Operaटो & | ^ ~ बाएं से दायां
त्रिगुट Operaटो ?: दाएं से बाएं
Shift Operaटो << >> बाएं से दायां
स्ट्रिंग तुलना Operaटो समीकरण ne बाएं से दायां
घातांक Operaटो ** बाएं से दायां
सूची Operaटो नि: शुल्क बाएं से दायां

अंकगणित Operaटो

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

% मापांक ऑपरेटर अंश को अंश से विभाजित करता है लेकिन अनुस्मारक लौटाता है

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

संबंधपरक Operaटो

जाँचता है कि क्या बाएँ ऑपरेंड का मान दाएँ ऑपरेंड के मान से अधिक है। यदि हाँ, तो शर्त सत्य हो जाती है और 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

तार्किक Operaटो

&& यदि दोनों ऑपरेंड शून्य नहीं हैं, तो स्थिति सत्य हो जाती है और 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

बिटवाइज़ Operaटो

& (बिटवाइज़ और) बिट दर बिट ऑपरेशन करते हैं और ऑपरेशन के लिए नीचे दी गई तालिका का पालन करते हैं।

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 

| (बिटवाइज़ या) बिट दर बिट ऑपरेशन करें और नीचे दी गई तालिका का पालन करें

A B ए | बी
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 

^ (बिटवाइज़ एक्सक्लूसिव या) बिट बाय बिट ऑपरेशन करें और नीचे दी गई तालिका का पालन करें

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

~ (बिटवाइज़ निगेशन) ऑपरेटर प्रत्येक 1 को 0 में तथा 0 को 1 में बदलता है, संदर्भ के लिए तालिका का अनुसरण करें

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

त्रिगुट Operaटोर ( ?:)

सिंटैक्स है

condition-expression?  expression_1: expression_2

यदि condition-exp सत्य है, तो exp1 का मूल्यांकन किया जाता है और परिणाम लौटाया जाता है। यदि cond-exp असत्य है, तो exp2 का मूल्यांकन किया जाता है और उसका परिणाम लौटाया जाता है। हमारे उदाहरण में, exp1 सत्य है क्योंकि A का मान 6 से अधिक है।

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

Shift Operaटो

Shift ऑपरेटर को या तो << left Shift ऑपरेटर या >> right Shift ऑपरेटर द्वारा दर्शाया जाता है। << left Shift ऑपरेटर के लिए, बाएं ऑपरेंड का मान दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से बाईं ओर ले जाया जाता है।

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

>> राइट शिफ्ट ऑपरेटर के लिए, बाएं ऑपरेंड का मान दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से दाईं ओर ले जाया जाता है।

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

स्ट्रिंग तुलना Operaटो

स्ट्रिंग तुलना ऑपरेटर दोनों ऑपरेंड के मान की तुलना करता है। यदि ऑपरेंड का मान समान है, तो यह 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

सूची Operaटो

यदि आवश्यक मान निर्धारित सूची में पाया जाता है, तो यह 1 लौटाता है अन्यथा 0 लौटाता है। उदाहरण में मान 1 चर 'a' में मौजूद है, इसलिए यह 1 लौटाएगा।

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

नी, यदि आवश्यक मान निर्धारित सूची में पाया जाता है तो यह 0 लौटाएगा अन्यथा 1 लौटाएगा।

पूर्व :-

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

टीसीएल प्रवाह नियंत्रण और निर्णय लेना

प्रोग्राम के प्रवाह को बदलने के लिए विभिन्न प्रवाह नियंत्रण और निर्णय लेने वाले कमांड का उपयोग किया जाता है। प्रोग्राम निष्पादन हमेशा स्रोत फ़ाइल के शीर्ष से नीचे की ओर शुरू होता है।

यदि कथन में बूलियन अभिव्यक्ति के बाद एक या अधिक कथन होते हैं।

यदि ... कथन

वाक्य - विन्यास:-

यदि expr ?तो? बॉडी

यदि expr का मूल्यांकन सत्य है, तो कमांड का मुख्य भाग निष्पादित होता है।

पूर्व:-

set age 10

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

Output: Age is less than 20

यदि ... अन्यथा कथन

वाक्यविन्यास:-

यदि अभिव्यक्ति ? तो body_1 अन्यथा body_2

यदि अभिव्यक्ति का मूल्यांकन सत्य के रूप में किया जाता है, तो यह 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 or else..if कथन को दूसरे if or 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

स्विच कथन

स्विच स्टेटमेंट किसी वैरिएबल को मानों की सूची के विरुद्ध समानता के लिए परखने में सक्षम बनाता है। यह मानों की सूची का मूल्यांकन करता है और उस मूल्यांकन का परिणाम लौटाता है। यदि कोई मान मेल नहीं खाता है तो डिफ़ॉल्ट मान लौटाए जाएँगे।

उदाहरण:

#!/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 है। आउट, 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 निम्नलिखित प्रकार के लूपिंग स्टेटमेंट प्रदान करता है।

आदेश देते समय

जब दी गई शर्त सत्य होती है तो एक कथन या कथनों का समूह दोहराया जाता है जो लूप बॉडी में होते हैं।

वाक्य - विन्यास:

While  {condition} {
    Statements
}

पूर्व :-

#!/usr/bin/tclsh

Set a 10

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

आउटपुट: -

a = 10

a = 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

सारांश:

  • टीसीएल स्ट्रिंग आधारित स्क्रिप्टिंग भाषा है और एक प्रक्रियात्मक भाषा भी है
  • यह भाषा आमतौर पर GUI और परीक्षण के लिए उपयोग की जाती है
  • TCL में डिफ़ॉल्ट रूप से सब कुछ स्ट्रिंग है
  • टीसीएल एक शेल अनुप्रयोग है जो अपने मानक इनपुट या फ़ाइल से टीसीएल कमांड पढ़ता है और वांछित परिणाम देता है।
  • TCL प्रोग्राम में .tcl एक्सटेंशन होना चाहिए