Che cosa è TCL?

TCL è un’applicazione shell che legge il comando TCL dal suo input standard o da un file e fornisce i risultati desiderati.

TCL è un linguaggio di scripting basato su stringhe e anche un linguaggio procedurale. È stato creato per la prima volta da John Osterhout nel 1989. Lo scopo di sviluppare questo linguaggio è facile embedded inti () applicazioni. Il linguaggio è comunemente usato per GUI e test. Ad esempio, prototipazione rapida, test di interazione con database, ecc., In TCL per impostazione predefinita tutto è una stringa.,

  • TCL Variabile
  • TCL Espressione e l’Operatore
  • TCL controllo di flusso e di decisione
  • Come Eseguire TCL

    Ci sono due modi per eseguire codice TCL

    1. applicazione basata su Windows è disponibile qui tcltutor file exe
    2. Basato su Linux applicazione

    In Linux interprete interattivo, siamo in grado di eseguire lo script TCL, come di seguito

    Per accedere TCL sessione interattiva, eseguire il seguente comando:

    script TCL

    TCL programma dovrebbe avere un .,estensione tcl. Ogni script in UNIX / LINUX inizia con TCL shell path

    #!/usr/bin/tclsh

    Esempio: –

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

    Output: Hello World

    In TCL, il comando “Puts” viene utilizzato per stampare i messaggi sulla console .la sintassi di puts è sotto

    puts?- nessuna linea? ?ID canale? string

    • Nonewline: Questo parametro opzionale sopprime il carattere di nuova riga per impostazione predefinita. Mette una nuova riga per ogni stringa
    • Channelid: Questo parametro utilizzato per il canale di ingresso standard (stdin) e il canale di uscita standard (stdout).,

    Ex: –

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

    Tipo di sostituzione TCL

    Ci sono tre tipi di sostituzioni in TCL

    1. Sostituzione dei comandi
    2. Sostituzione delle variabili
    3. Sostituzione Backslash

    Studiamo uno per uno

    Sostituzione dei comandi

    Le parentesi quadre vengono utilizzate per la sostituzione dei comandi.

    Esempio: –

    % puts % 3

    Qui il comando tra parentesi quadre viene valutato per primo. I risultati vengono restituiti .”expr” utilizzato per eseguire il calcolo aritmetico.,

    Sostituzione variabile

    TCL esegue la sostituzione variabile con l’aiuto di sign sign.

    Esempio: –

    #!/usr/bin/tclshset a 10puts aputs $a 

    Qui creiamo una variabile chiamata “a” e impostiamo il valore “10” ad essa.

    • mette a : Stamperà la stringa “a” ma non il valore di ” a “sulla console
    • mette puts a : Stamperà il valore di” a ” sulla console

    Eseguiamolo e verificiamolo. Si otterrà l’uscita come di seguito.,

    $ ./substitution.tcl

    a

    Sostituzione della barra rovesciata

    In Tcl, la barra rovesciata viene utilizzata per l’escape di caratteri speciali e per la diffusione di comandi lunghi su più righe. Qualsiasi carattere immediatamente successivo alla barra rovesciata rimarrà senza sostituzione. Nell’esempio seguente, è possibile vedere carattere speciale ” “, rimane dopo la barra rovesciata.

    Verifichiamo questo con un esempio

    #!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"

    NOTA: -Per commentare qualsiasi stringa in TCL viene utilizzato”#”. Tutti i caratteri dopo il ” # ” vengono ignorati dal comando tclsh shell.,

    Variabile TCL

    Una variabile è un identificatore che contiene un valore. In altre parole, una variabile è un riferimento a una memoria del computer, in cui è memorizzato il valore.

    Le variabili vengono create da “set command” e tutti i nomi delle variabili sono case sensitive. Significa ciao, ciao, CIAO tutti sono diversi in TCL. Guarda qualche esempio per la variabile sensibile al maiuscolo / minuscolo.,

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

    Uscita:-

    % puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2

    la Creazione di TCL Variabili

    Per creare le variabili in TCL, è necessario utilizzare il comando “set”

    10

    Per ottenere il valore della variabile è necessario utilizzare il simbolo “$” come

    % mettere $a

    % 10

    in Modo da ottenere il valore della variabile ‘a’ 10.

    TCL Info comando esiste

    Il comando “set” viene utilizzato per creare e leggere le variabili come mostrato sopra. Il comando unset viene utilizzato per distruggere una variabile., Il comando” info exists ” restituisce 1 se varName esiste come variabile (o elemento array) nel contesto corrente, altrimenti restituisce 0. (vedi esempio sotto).

    Ex: –

    % set a 20% puts $a% 20% puts % 1% unset a%puts % 0

    Diverse parentesi graffe e il loro comportamento

    {}- > Parentesi graffe

    Parentesi graffe in TCL raggruppano le parole per diventare argomenti. Le parentesi graffe vengono utilizzate per definire un blocco differito, in altre parole, può essere eseguito DOPO il resto del comando sulla riga corrente. I caratteri tra parentesi vengono passati a un comando esattamente come scritto.,

    Alcuni punti da ricordare

    1. la sostituzione di Variabile non è consentito all’interno di parentesi graffe {} parentesi
    2. e ‘ usato per creare un elenco tipo di dati

    Esempio:

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

    %numero dell’insieme {1 2 3 4 5} -> Qui il numero è riportato un elenco tipo di dati

    %mette $numero

    %1 2 3 4 5

    -> parentesi quadre

    le parentesi sono utilizzate per creare un comando nidificato. In poche parole, l’output di un comando passato come argomento a un altro comando., Le parentesi quadre vengono utilizzate per definire un blocco che viene eseguito PRIMA del resto del comando sulla riga corrente e il risultato viene sostituito nella riga.

    Ex: –

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

    ()- > parentesi tonde

    Questo comando viene utilizzato per creare un tipo di dati array e indicare anche la precedenza dell’operatore.

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

    Qui “a” è un array con valore 10 e 20. Vedi sotto i comandi per stampare chiavi, coppie di valori chiave e valori di array.,

    Per stampare il valore “Nth” dell’array a, useremo Puts Puts a(N)

    Argomenti della riga di comando TCL

    Gli elementi di dati passati a uno script dalla riga di comando sono noti come argomenti. Il numero di argomenti della riga di comando per uno script Tcl viene passato come variabile globale argc . Il nome di uno script Tcl viene passato allo script come variabile globale argv0 e il resto degli argomenti della riga di comando viene passato come elenco in argv.,

    TCL ha 3 pre-variabili definite come

    $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 30

    uscita:-

    • Numero di argomenti passati allo script: 3
    • Lista di argomenti passati allo script: 10 20 30
    • Il nome dello script è : arg-script.tcl

    Espressione e operatore TCL

    L’espressione è costruita da operandi e operatori. Viene valutato con il comando “expr”. Gli operatori vengono valutati in base alla precedenza e all’associatività., Il linguaggio TCL ha operatori incorporati come di seguito

    Operatore aritmetico

    Un’espressione TCL consiste in una combinazione di operandi, operatori e parentesi., Vediamo l’esempio di operatori Aritmetici in TCL

    + Aggiungi due o più operandi

    Es:

    %set a 10 %set b 20%puts 30

    – Sottrae due o più operandi

    Ex:-

    %set a 20 %set b 10%puts 10

    *moltiplicazione di due o più operandi

    %set a 20 %set b 10%puts 200

    / Dividere numeratore dal denominatore

    %set a 20 %set b 10%puts 2

    % Operatore di modulo divide il numeratore de-numeratore, ma restituisce promemoria

    %set a 20 %set b 10%puts 0

    Operatore Relazionale

    Controlla se il valore dell’operando di sinistra è maggiore del valore dell’operando di destra., Se sì, la condizione diventa vera e restituisce 1 altrimenti restituisce 0.

    %set a 20 %set b 10%puts 1

    Controlla se il valore dell’operando sinistro è inferiore al valore dell’operando destro., Se sì, allora la condizione diventa vera e return 1 else return 0

    %set a 10 %set b 20%puts 1

    >= Controlla se il valore dell’operando di sinistra è maggiore o uguale al valore dell’operando di destra se sì, allora la condizione diventa vera e return 1 else return 0

    %set a 20 %set b 10%puts 1

    <= Controlla se il valore dell’operando di sinistra è minore o uguale al valore dell’operando di destra, se sì, allora la condizione diventa vera e return 1 else return 0

    %set a 20 %set b 10%puts 0

    !,re non è uguale quindi condizione diventa vera e return 1 else return 0

    %set a 20 %set b 10%puts 1

    == Controlla se i valori di due operandi sono uguali o non, se sì, allora la condizione diventa vera e return 1 else return 0

    %set a 20 %set b 10%puts 0

    Operatore Logico

    && Se entrambi gli operandi sono diversi da zero, quindi la condizione diventa vera e return 1 else return 0

    %set a 20 %set b 10%puts 1

    || Se uno dei due operandi è diverso da zero, allora la condizione diventa vera e return 1 else return 0

    %set a 0 %set b 10%puts 1

    !, Utilizzato per invertire il risultato di qualsiasi espressione. Qui nell’output, puoi vedere che il valore di ‘ a ‘ ora è diventato 1 da 0. Mentre il valore di ‘b’ è diventato 0 da 1.

    %set a 0 %set b 1%puts 1%puts 0

    Operatore bit a bit

    & (bit a bit e) eseguire il funzionamento bit per bit e seguire la tabella sottostante per il funzionamento.,/td>

    0 0 1 1 1 1 0 1 0 1

    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 ( ?,:)

    La sintassi è

    condition-expression? expression_1: expression_2

    Se condition-exp è true, exp1 viene valutato e il risultato viene restituito. Se il cond-exp è false, exp2 viene valutato e il suo risultato viene restituito. Nel nostro esempio, exp1 è vero in quanto il valore di A è maggiore di 6.

    %set A 7%set result %puts $resulttrue

    Spostamento dell’Operatore

    Spostamento dell’operatore è identificato da risultare << spostamento a sinistra dell’operatore, o il >> spostamento a destra dell’operatore., Per<< operatore di spostamento a sinistra, il valore degli operandi a sinistra viene spostato a sinistra in base al numero di bit specificato dall’operando a destra.

    %set A 7%set result %puts $result

    Per l’operatore di spostamento destro>>, il valore degli operandi di sinistra viene spostato a destra in base al numero di bit specificato dall’operando destro.

    %set A 7%set result %puts $result

    Operatore di confronto stringa

    Operatore di confronto stringa confronta il valore di entrambi gli operandi. Se il valore dell’operando è lo stesso, restituirà 1 altrimenti restituirà 0., Nell’esempio il valore per A e B è 7, quindi il risultato restituisce 1.

    Ex: –

    %set A 7 %set B 7%set result %puts $result1

    Ne (se il valore di entrambi gli operando sono diversi, restituirà 1 altro ritorno 0)

    %set A 7 %set B 8%set result %puts $result1

    Operatore di esponenziazione

    Pow () e ** entrambi sono uguali. Restituisce sempre un valore variabile.

    ** indica la potenza dell’operando desiderato.

    Ex: –

    %set A 7%set result %puts $result49

    Operatore elenco

    Se il valore richiesto trovato nella lista definita, restituisce 1 altro ritorno 0. Nell’esempio il valore 1 esiste nella variabile ‘ a ‘ quindi restituirà 1.,

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

    ni, se il valore richiesto trovato nell’elenco definito restituirà 0 altrimenti restituirà 1.

    Ex: –

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

    Controllo di flusso TCL e processo decisionale

    Ci sono vari comandi di controllo di flusso e processo decisionale che vengono utilizzati per modificare il flusso di un programma. Le esecuzioni del programma iniziano sempre dalla parte superiore del file sorgente verso il basso.

    Se l’istruzione è costituita da un’espressione booleana seguita da una o più istruzioni.

    Se … istruzione

    Sintassi: –

    se expr ?allora?, body

    se expr viene valutato a true, viene eseguito il corpo del comando.

    Es: –

    set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20

    Se … else istruzione

    Sintassi: –

    Se espressione ? quindi body_1 else body_2

    Se l’espressione viene valutata su true, restituirà body_1 else restituirà body_2

    Ex: 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

    Annidato if..istruzione else

    Significa uno se o altro..l’istruzione if può essere inserita in un’altra if o else..dichiarazioni if.,

    Sintassi: –

    If {expression_1} {Body_1If {expression_2} {Body_2}}

    Ex: Ex

    Istruzione switch

    L’istruzione switch consente di verificare l’uguaglianza di una variabile rispetto a un elenco di valori. Valuta l’elenco di valori e restituisce il risultato di tale valutazione. Se nessun valore corrisponde, verranno restituiti i valori predefiniti.

    Esempio:

    #!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}

    Interruttore nidificato

    L’istruzione interruttore nidificato indica l’istruzione interruttore all’interno di un’istruzione interruttore.,

    Sintassi: –

    Esempio: Nel seguente esempio, il valore di a è 100, e con lo stesso codice si passa istruzione per un altro valore di b è 200. L’out mostrerà il valore sia per a che per 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:

    Il valore di a è 100

    Il valore di b è 200

    TCL Loop statement

    Loop statement consente di eseguire un’istruzione o un gruppo di istruzioni più volte. Tcl fornisce i seguenti tipi di istruzioni di loop.,

    Mentre comando

    Quando una data condizione è vera, un’istruzione o un gruppo di istruzioni si ripete nel corpo del ciclo.

    Sintassi:

    While {condition} { Statements}

    Ex: –

    #!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}

    Output:

    a è 10

    a è 11

    Nell’esempio precedente, viene utilizzato il comando incorporato “incr”. Significa che il valore di ‘ a ‘ sarà aumentato di 1 fino al valore massimo (<12).

    Per il comando

    Esegue una sequenza di istruzioni più volte in base a un valore del contatore., Viene automaticamente aumentato o diminuito durante ogni ripetizione del ciclo.

    Sintassi: –

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

    Esempio: Nell’esempio seguente il valore di ‘i’ è impostato su 0 e incrementato fino al valore < 5.

    #!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}

    Uscita: –

    Articles

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *