¿qué es TCL?

TCL es una aplicación de shell que lee el comando TCL desde su entrada estándar o desde un archivo y da los resultados deseados.

TCL es un lenguaje de secuencias de comandos basado en cadenas y también un lenguaje procedimental. Fue creado por primera vez por John Osterhout en 1989. El propósito de desarrollar este lenguaje es fácil incrustar aplicaciones inti (). El lenguaje se usa comúnmente para Gui y pruebas. Por ejemplo, creación rápida de prototipos, interacción con la base de datos de pruebas, etc., En TCL por defecto Todo es una cadena.,

  • TCL Variable
  • TCL expresión y operador
  • TCL control de flujo y toma de decisiones
  • cómo ejecutar TCL

    Hay dos formas de ejecutar código TCL

    1. La aplicación basada en Windows está disponible aquí archivo tcltutor exe
    2. aplicación basada en Linux

    en el intérprete interactivo de Linux, podemos ejecutar los scripts TCL de la siguiente manera

    para acceder a la sesión interactiva de TCL, ejecute el siguiente comando

    los scripts TCL

    el programa TCL debe tener un .,extensión tcl. Cada script en UNIX / LINUX comienza con TCL shell path

    #!/usr/bin/tclsh

    Ejemplo: –

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

    salida: Hola Mundo

    en TCL, el comando «Puts» se usa para imprimir mensajes en la consola .la sintaxis de puts está debajo

    puts?- ¿nonewline? ?¿channelId? string

    • Nonewline: este parámetro opcional suprime el carácter de nueva línea por defecto. Pone una nueva línea a cada cadena
    • Channelid: este parámetro se utiliza para el canal de entrada estándar (stdin) y el canal de salida estándar (stdout).,

    Ex:-

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

    tipo de sustitución TCL

    hay tres tipos de sustituciones en TCL

    1. sustitución de comandos
    2. sustitución de variables
    3. sustitución de barra invertida

    vamos a estudiar uno por uno

    sustitución de comandos

    los corchetes se utilizan para la sustitución de órdenes.

    Ejemplo:

    % puts % 3

    Aquí el comando entre los corchetes se evalúa primero. Se devuelven los resultados .»expr» utilizado para realizar el cálculo aritmético.,

    sustitución de variables

    TCL realiza la sustitución de variables con la ayuda del signo$.

    ejemplo:-

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

    Aquí creamos una variable llamada «a» y le asignamos el valor «10».

    • pone : se imprimirá la cadena «a», pero no el valor de ‘a’ a la consola
    • pone $a : se imprimirá el valor de ‘a’ a la consola

    Vamos a ejecutar y verificar. Obtendrá la salida de la siguiente manera.,

    $ ./substitution.tcl

    a

    sustitución de barra invertida

    en Tcl, la barra invertida se utiliza para escapar caracteres especiales, así como para difundir comandos largos a través de varias líneas. Cualquier carácter inmediatamente después de la barra invertida permanecerá sin sustitución. En el siguiente ejemplo, puede ver el carácter especial»», permanece después de la barra invertida.

    vamos a verificar esto con un ejemplo

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

    nota: – para comentar cualquier cadena en TCL » # » se utiliza. Todos los caracteres después del » # » son ignorados por el comando tclsh shell.,

    TCL Variable

    Una variable es un identificador que tiene un valor. En otras palabras, una variable es una referencia a la memoria de una computadora, donde se almacena el valor.

    Las Variables se crean mediante «set command» y todos los nombres de las variables distinguen entre mayúsculas y minúsculas. Significa hola, hola, hola todos son diferentes en TCL. Mire algún ejemplo para la variable sensible a mayúsculas y minúsculas.,

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

    Salida:-

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

    la Creación de las Variables TCL

    Para crear variables en TCL, usted necesidad de utilizar «set» comando

    Establecer un 10

    Para obtener el valor de la variable tiene que usar símbolo «$» como

    % pon $a

    % 10

    por Lo tanto obtenemos el valor de la variable ‘a’ 10.

    TCL Command Info exist

    el comando » set » se usa para crear y leer variables como se muestra arriba. El comando unset se usa para destruir una variable., El comando» info exists » devuelve 1 si varName existe como una variable (o un elemento array) en el contexto actual, de lo contrario devuelve 0. (ver ejemplo a continuación).

    por ejemplo:-

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

    Diferentes llaves y su comportamiento

    {} -> llaves

    llaves en TCL grupo de palabras juntos para convertirse en argumentos. Las llaves se usan para definir un bloque que está diferido, en otras palabras, puede ejecutarse después del resto del comando en la línea actual. Los caracteres dentro de llaves se pasan a un comando exactamente como está escrito.,

    algunos puntos para recordar

    1. La sustitución de variables no está permitida dentro de {} llaves
    2. Se utiliza para crear el tipo de datos de Lista

    ejemplo :-

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

    %set number {1 2 3 4 5} -> aquí el número es un tipo de datos de Lista

    %puts number number

    %1 2 3 4 5

    -> llaves cuadradas

    Los corchetes se utilizan para crear comandos anidados. En pocas palabras, la salida de un comando pasa como argumento a otro comando., Los corchetes se utilizan para definir un bloque que se ejecuta antes del resto del comando en la línea actual, y el resultado se sustituye en la línea.

    Ex: –

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

    () -> llaves redondas

    Este comando se usa para crear el tipo de datos de la matriz y también indicar la precedencia del operador.

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

    Aquí » a » es un array con valor 10 y 20. Vea los comandos a continuación para imprimir claves, pares de valores de clave y valores de matriz.,

    para imprimir el valor «n-ésimo» de la matriz a, usaremos Puts Puts a(N)

    argumentos de línea de comandos TCL

    Los Elementos de datos pasados a un script desde la línea de comandos se conocen como argumentos. El número de argumentos de la línea de comandos a un script Tcl se pasa como la variable global argc . El nombre de un script Tcl se pasa al script como la variable global argv0, y el resto de los argumentos de la línea de comandos se pasan como una lista en argv.,

    TCL tiene 3 variables predefinidas como

    $argc -> indicates the number of arguments passed to the script$argv -> indicates list of arguments$argv0 -> indicates the name of script

    Ex: Ex

    arg-script.tcl#!/usr/bin/tclsh 
    $ ./arg-script.tcl 10 20 30

    salida:-

    • Número de argumentos pasados a los scripts: 3
    • lista de argumentos pasados al script: 10 20 30
    • El nombre del script es : ARG – script.tcl

    TCL Expression and Operator

    Expression se construye a partir de operandos y operadores. Se evalúa con el comando «expr». Los operadores se evalúan en función de la precedencia y la asociatividad., El lenguaje TCL tiene operadores incorporados como a continuación

    operador aritmético

    una expresión TCL consiste en una combinación de operandos, operadores y paréntesis., Veamos ejemplo de operadores aritméticos en TCL

    + añadir dos o más operandos

    Ex:-

    %set a 10 %set b 20%puts 30

    – restar dos o más operandos

    Ex:-

    %set a 20 %set b 10%puts 10

    *multiplicar dos o más operandos

    %set a 20 %set b 10%puts 200

    / dividir numerador por denumerador

    %set a 20 %set b 10%puts 2

    % Modulus operador divide numerador por de-numerador pero devuelve recordatorio

    %set a 20 %set b 10%puts 0

    operador relacional

    comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho., Si es así, entonces la condición se convierte en true y devuelve 1 Else devuelve 0.

    %set a 20 %set b 10%puts 1

    compruebe si el valor del operando izquierdo es menor que el valor del operando derecho., En caso afirmativo, la condición se convierte en verdadera y devuelve 1 else devuelve 0

    %set a 10 %set b 20%puts 1

    >= comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, en caso afirmativo, la condición se convierte en verdadera y devuelve 1 Else devuelve 0

    %set a 20 %set b 10%puts 1

    <= comprueba si el valor del operando izquierdo es menor o igual al valor del operando derecho, si es así entonces la condición se vuelve verdadera y devuelve 1 Else devuelve 0

    %set a 20 %set b 10%puts 0

    !,re no iguales, entonces la condición es verdadera y return 1 else return 0

    %set a 20 %set b 10%puts 1

    == Comprueba si los valores de dos operandos son iguales o no, si sí, entonces la condición es verdadera y return 1 else return 0

    %set a 20 %set b 10%puts 0

    Operador Lógico

    && Si los dos operandos son no-cero, a continuación, la condición se convierte en verdadera y return 1 else return 0

    %set a 20 %set b 10%puts 1

    || Si alguno de los dos operandos es distinto de cero, entonces la condición es verdadera y return 1 else return 0

    %set a 0 %set b 10%puts 1

    !, Se usa para invertir el resultado de cualquier expresión. Aquí en la salida, puede ver que el valor de ‘a’ ahora se ha convertido en 1 de 0. Mientras que el valor de ‘ b ‘ se ha convertido en 0 de 1.

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

    Bitwise Operator

    & (bitwise and) realice la operación bit a bit y siga la siguiente tabla para la operación.,/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 sintaxis es

    condition-expression? expression_1: expression_2

    si la condición-exp es verdadera, exp1 se evalúa y se devuelve el resultado. Si el cond-exp es false, se evalúa exp2 y se devuelve su resultado. En nuestro ejemplo, exp1 es verdadero ya que el valor de A es mayor que 6.

    %set A 7%set result %puts $resulttrue

    Shift Operator

    Shift operator se denota por<<>> operador de desplazamiento derecho., Para el operador de desplazamiento izquierdo <<, el valor de los operandos izquierdos se mueve a la izquierda por el número de bits especificado por el operando derecho.

    %set A 7%set result %puts $result

    Para el >> operador de desplazamiento a la derecha, la izquierda operandos valor se mueve a la derecha por el número de bits especificado por el operando derecho.

    %set A 7%set result %puts $result

    operador de comparación de cadenas

    operador de comparación de cadenas compara el valor de ambos operandos. Si el valor del operando es el mismo, entonces devolverá 1 Else devolverá 0., En el ejemplo, el valor para A y B es 7, por lo tanto, el resultado devuelve 1.

    Ex: –

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

    Ne (si el valor de ambos operando es diferente, devolverá 1 Else return 0)

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

    operador de exponenciación

    Pow () y ** ambos son iguales. Siempre devuelve un valor flotante.

    * * indica la potencia del operando deseado.

    Ex: –

    %set A 7%set result %puts $result49

    List Operator

    Si el valor requerido se encuentra en la lista definida, devuelve 1 Else return 0. En el ejemplo, el valor 1 existe en la variable ‘a’, por lo que devolverá 1.,

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

    ni, si el valor requerido se encuentra en la lista definida, devolverá 0 ELSE devolverá 1.

    Ex: –

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

    TCL control de flujo y toma de decisiones

    Hay varios comandos de control de flujo y toma de decisiones que se utilizan para alterar el flujo de un programa. Las ejecuciones del programa siempre comienzan desde la parte superior del archivo fuente hasta la parte inferior.

    si la instrucción consiste en una expresión booleana seguida de una o más instrucciones.

    Si … sentencia

    sintaxis: –

    if expr ?entonces?, body

    Si expr se evalúa a true, entonces se ejecuta el cuerpo del comando.

    Ex: –

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

    If … sentencia else

    sintaxis: –

    expresión If ? luego body_1 más body_2

    Si la expresión se evalúa a verdadero, entonces regresará body_1 bien devolverá body_2

    por ejemplo:–

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

    si Anidadas..declaración else

    significa uno si o bien..si la declaración se puede poner dentro de otro si o bien..si declaraciones.,

    sintaxis:-

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

    Ex: statement

    instrucción Switch

    la instrucción switch permite probar la igualdad de una variable con una lista de valores. Evalúa la lista de valores y devuelve el resultado de esa evaluación. Si ningún valor coincide, se devolverán los valores predeterminados.

    ejemplo:

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

    interruptor anidado

    la instrucción switch anidado significa la instrucción switch dentro de una instrucción switch.,

    sintaxis: –

    Ejemplo: en el siguiente ejemplo, el valor de A es 100, y con el mismo código cambiamos la sentencia por otro valor de b es 200. La salida mostrará el valor tanto para a como para 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" } } } }

    salida:

    el valor de A es 100

    el valor de b es 200

    TCL loop statement

    Loop statement permite ejecutar una instrucción o grupo de instrucciones varias veces. Tcl proporciona los siguientes tipos de instrucciones de bucle.,

    While comando

    Cuando una condición dada es verdadera, entonces una instrucción o grupo de instrucciones se repite que están en el cuerpo del bucle.

    sintaxis:

    While {condition} { Statements}

    Ex: –

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

    salida :

    a es 10

    a es 11

    en el ejemplo anterior, se usa el comando integrado» incr». Significa que el valor de ‘A’ se incrementará en 1 hasta el valor máximo (< 12).

    For command

    ejecuta una secuencia de sentencias varias veces basadas en un valor de contador., Se incrementa o disminuye automáticamente durante cada repetición del bucle.

    sintaxis :-

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

    Ejemplo: en el siguiente ejemplo el valor de ‘i’ se establece en 0 y se incrementa hasta el valor <5.

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

    Salida :-

    Articles

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *