o que é TCL?
TCL é uma aplicação shell que lê o comando TCL a partir de sua entrada padrão ou de um arquivo e dá os resultados desejados.
TCL é uma linguagem de scripts baseada em string e também uma linguagem processual. Foi criado pela primeira vez por John Osterhout em 1989. O propósito de desenvolver esta linguagem é fácil embutido inti ( ) aplicações. A linguagem é comumente usada para GUIs e testes. Por exemplo, prototipagem rápida, testando interação de banco de dados, etc., Em TCL por padrão tudo é uma string.,
Como Executar TCL
Existem duas formas de executar a TCL código
- aplicativo para Windows está disponível aqui tcltutor arquivo exe
- Baseado em Linux, o aplicativo
No Linux interpretador interativo, podemos executar os scripts TCL como abaixo
Para acessar TCL sessão interativa, execute o seguinte comando
TCL scripts
TCL programa deve ter um .,extensão tcl. Todo script no UNIX / LINUX começa com o caminho da linha de comandos TCL
#!/usr/bin/tclsh
exemplo: –
#!/usr/bin/tclshPuts "Hello World"Script execution:-$ chmod +x helloworld.tcl$ ./helloworld.tcl
Saída: Hello World
no TCL, o comando “Puts” é usado para imprimir mensagens para a consola .a sintaxe de puts está abaixo de
puts?- nonewline? ?channelId? string
- Nonewline: este parâmetro opcional suprime o carácter da newline por comando predefinido. Ele coloca uma nova linha para cada string
- Channelid: este parâmetro usado para o canal padrão de entrada (stdin) e o canal padrão de saída (stdout).,
Ex:-
%puts "Hello World"% Hello World%puts stdout "Hello World"% Hello World
TCL Substituição de tipo
Existem três tipos de substituições em TCL
- substituição de Comandos
- a substituição da Variável
- barra Invertida de substituição
Vamos estudar uma por uma
a substituição de Comando
colchetes são usados para a substituição de comando.
exemplo: –
% puts % 3
Aqui o comando entre os parêntesis rectos é avaliado primeiro. Os resultados são devolvidos .”expr” utilizado para efectuar o cálculo aritmético.,
substituição de variáveis
TCL executa substituição de variáveis com a ajuda de $ sign.
exemplo: –
#!/usr/bin/tclshset a 10puts aputs $a
Aqui criamos uma variável chamada “a” e definimos o valor “10” para ela.
- coloca a: irá imprimir o texto ” a ” mas não o valor de ‘a’ na consola
- coloca $a : irá imprimir o valor de ‘a’ na consola
vamos executá-lo e verificá-lo. Você terá a saída como abaixo.,
$ ./substitution.tcl
A
substituição de barra invertida
no Tcl, a barra invertida é usada para escapar de caracteres especiais, bem como para espalhar comandos longos através de várias linhas. Qualquer personagem imediatamente após a barra invertida ficará sem substituição. No exemplo abaixo, você pode ver o personagem especial””, permanece após a barra invertida.
let’s verify this with an example
#!/usr/bin/tclshputs "This is my \"car\"$ ./backslashsubstitution.tclThis is my "car"
nota: -To comment any string in TCL “#” is used. Todos os personagens após o ” # ” são ignorados pelo comando shell tclsh.,
variável TCL
uma variável é um identificador que detém um valor. Em outras palavras, uma variável é uma referência a uma memória de computador, onde o valor é armazenado.
variáveis são criadas por” set command ” e todos os nomes de variáveis são sensíveis à capitalização. Significa Olá, Olá, Olá, todos são diferentes em TCL. Veja um exemplo para uma variável sensível a maiúsculas.,
% set name Techoit% set Name Technoit_1% set NAME Technoit_2
Saída:-
% puts $name% Technoit%puts $Name%Technoit_1%puts $NAME%Technoit_2
a Criação de SÍMBOLOS de Variáveis
Para criar variáveis em TCL, você precisa usar o “set” de comando
Definir um 10
Para obter o valor da variável de ter que usar o “$” como símbolo
% colocá $a
% 10
Para que possamos obter o valor da variável ‘a’ 10.
a informação do comando TCL existe
o comando “set” é usado para criar e ler variáveis como mostrado acima. O comando unset é usado para destruir uma variável., O comando” info existe ” devolve 1 Se o varName existir como uma variável (ou um elemento array) no contexto actual, caso contrário devolve 0. (ver exemplo abaixo).
Ex:-
% set a 20% puts $a% 20% puts % 1% unset a%puts % 0
Diferentes chaves e o seu comportamento
{} -> chaves
chaves no grupo TCL palavras juntos para tornar argumentos. Chavetas Curly são usadas para definir um bloco que é diferido-em outras palavras, ele pode ser executado após o resto do comando na linha atual. Os caracteres dentro dos suspensórios são passados a um comando exatamente como escrito.,
Alguns pontos a serem lembrados
- substituição de Variável não é permitido dentro de {} chaves
- É usado para criar a lista de tipo de dados
Exemplo:
% set x 10% puts {$x}% $x
%número do conjunto {1 2 3 4 5} -> número Aqui está uma lista de tipo de dados
%coloca $numero
%1 2 3 4 5
-> colchetes
colchetes são usados para criar comando aninhado. Simplificando, a saída de um comando passou como argumento para outro comando., Os parêntesis rectos são usados para definir um bloco que é executado antes do resto do comando na linha atual, e o resultado é substituído na linha.
Ex: –
% set x 10% puts "y : ]"%y : 10% puts "x : $x"%x : 10
() – > Chavetas redondas
Este comando é usado para criar um tipo de dados array e também para indicar a precedência do operador.
% set a(1) 10% set a(2) 20
Aqui “A” é um array com valores 10 e 20. Veja abaixo os comandos para imprimir chaves, pares de valores-chave e valores de array.,
para imprimir o valor ” Nth ” do array a, vamos usar Puts $a(N)
TCL argumentos da linha de comandos
itens de dados passados a um programa da linha de comandos são conhecidos como argumentos. O número de argumentos da linha de comando para um script Tcl é passado como a variável global argc . O nome de um script Tcl é passado para o script como a variável global argv0 , e o resto dos argumentos da linha de comando são passados como uma lista em argv.,
TCL possui 3 variáveis pré-definidas, tais como:
$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 30saída:-
- o Número de argumentos passados para os scripts: 3
- Lista de argumentos são passados para o script: 10 20 30
- O nome do script é : arg-script.TCL
TCL Expression and Operator
Expression is constructed from operands and operators. É avaliada com o comando” expr”. Os operadores são avaliados com base em precedência e associatividade., TCL language has built-in operators as below
Arithmetic Operator
a TCL expression consists of a combination of operands, operators, and parentheses., Vamos ver o exemplo de operadores Aritméticos em TCL
+ Adicionar dois ou mais operandos
Ex:-
%set a 10 %set b 20%puts 30
– Subtrai dois ou mais operandos
Ex:-
%set a 20 %set b 10%puts 10
*Multiplica dois ou mais operandos
%set a 20 %set b 10%puts 200
/ Dividir o numerador pelo denumerator
%set a 20 %set b 10%puts 2
% Operador de módulo divide o numerador pelo de-numerador mas retorna lembrete
%set a 20 %set b 10%puts 0
o Operador Relacional
Verifica se o valor do operando esquerdo é maior que o valor do operando direito., Se sim, então a condição torna-se verdadeira e retornar 1 outra volta 0.
%set a 20 %set b 10%puts 1
Check if the value of left operand is less than the value of the right operand., Se sim, então a condição se torna verdadeira e return 1 else return 0
%set a 10 %set b 20%puts 1
>= Verifica se o valor do operando esquerdo é maior que ou igual ao valor do operando direito, se sim, então a condição se torna verdadeira e return 1 else return 0
%set a 20 %set b 10%puts 1
<= Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, em seguida, a condição se torna verdadeira e return 1 else return 0
%set a 20 %set b 10%puts 0
!,não são iguais, então a condição se torna verdadeira e return 1 else return 0
%set a 20 %set b 10%puts 1
== Verifica se os valores dos dois operandos são iguais ou não, se sim, então a condição se torna verdadeira e return 1 else return 0
%set a 20 %set b 10%puts 0
Operador Lógico
&& Se ambos os operandos são não-zero, em seguida, a condição se torna verdadeira e return 1 else return 0
%set a 20 %set b 10%puts 1
|| Se qualquer um dos dois operandos é diferente de zero, então a condição se torna verdadeira e return 1 else return 0
%set a 0 %set b 10%puts 1
!, Usado para reverter o resultado de qualquer expressão. Aqui na saída, você pode ver o valor de ‘a’ agora se tornou 1 de 0. Enquanto o valor de ” b ” se tornou 0 a partir de 1.
%set a 0 %set b 1%puts 1%puts 0
operador Bitwise
& (bitwise and) executar operação bit a bit e seguir a tabela abaixo para a operação.,/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 ( ?,:)
sintaxe é
condition-expression? expression_1: expression_2
Se condição-Val é verdadeiro, val1 é avaliado e o resultado é devolvido. Se o cond-exp for falso, o exp2 é avaliado e o seu resultado é devolvido. Em nosso exemplo, exp1 é verdadeiro como o valor de A é maior que 6.
%set A 7%set result %puts $resulttrue
Operador Shift
operador Shift é denotado por << shift esquerdo do operador, ou pelo >> shift da direita do operador., For << left shift operator, the left operands value is moved left by the number of bits specified by the right operand.
%set A 7%set result %puts $result
Para o >> shift da direita do operador, a esquerda operandos valor é movido para a direita pelo número de bits especificado pelo operando da direita.
%set A 7%set result %puts $result
operador de comparação de cordas
operador de comparação de cordas compara o valor de ambos os operandos. Se o valor do operando for o mesmo, então retornará 1 return 0., Em exemplo, o valor para A e B é 7, Portanto o retorno do Resultado 1.
Ex: –
%set A 7 %set B 7%set result %puts $result1
Ne (se o valor de ambos os operando são diferentes, então ele irá retornar 1 outro retorno 0)
exponenciação operador
Pow () e ** ambos são iguais. Devolve sempre valor flutuante.
** indica o poder para o operando desejado.
Ex: –
%set A 7%set result %puts $result49
operador da lista
Se o valor necessário for encontrado na lista definida, devolve 1 Outro valor 0. Por exemplo, o valor 1 existe na variável “a”, pelo que irá retornar 1.,
set a {1 2 3}if {1 in $a} {puts "ok"} else {puts "fail"}Output: ok
ni, se o valor requerido encontrado na lista definida então ele retornará 0 else return 1.
Ex: –
set a {1 2 3}if {1 ni $a} {puts "ok"} else {puts "fail"}Output: fail
TCL controle de fluxo e tomada de decisão
Existem vários controle de fluxo e comando de tomada de decisão que são usados para alterar o fluxo de um programa. As execuções de programas começam sempre do topo do ficheiro de código para o fundo. se a declaração consistir numa expressão booleana seguida de uma ou mais declarações.
If … instrução
sintaxe: –
se expr ?então?, body
if expr is avaued to true, then the body of command is executed.
Ex: –
set age 10if {$age < 20} {puts "Age is less than 20"}Output: Age is less than 20
If … else statement
sintaxe: –
If expression ? então body_1 else body_2
If expression is avauated to true, then it will return body_1 else it will return body_2
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
Nested if..else statement
It means one if or else..se a declaração pode ser colocada dentro de outro se ou não..se declarações.,
sintaxe: –
If {expression_1} {Body_1If {expression_2} {Body_2}}
Ex:–
Switch statement
a switch statement permite que uma variável seja testada para a igualdade em relação a uma lista de valores. Avalia a lista de valores e retorna o resultado dessa avaliação. Se nenhum valor corresponder, então os valores padrão serão devolvidos. exemplo:
#!/usr/bin/tclsh# switch_cmd.tclset domain xswitch $domain { x { puts "x" } y { puts "y" } z { puts "z" } default { puts "unknown" }}
comutador aninhado
Declaração aninhada significa declaração de comutação dentro de uma declaração de comutação.,
sintaxe: –
exemplo: no exemplo seguinte, o valor de A é 100, e com o mesmo código trocamos a instrução por outro valor de b é 200. A saída mostrará o valor de a e 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" } } } }
Saída:
O valor de a é 100
O valor de b é de 200
TCL instrução Loop
instrução de Ciclo permite a execução de uma instrução ou um grupo de instrução várias vezes. Tcl fornece os seguintes tipos de declaração de looping.,
while command
When a given condition is true then a statement or group of statement repeats which are in the loop body.
Sintaxe:
While {condition} { Statements}
Ex :-
#!/usr/bin/tclshSet a 10While {$a < 12} { Puts "a is $a" incr a}
Saída :
10
11
No exemplo acima, “s” built-in de comando é usado. Significa que o valor de”A”será aumentado em 1 até o valor máximo (<12).
para o comando
executa uma sequência de declarações múltiplas vezes com base num valor do contador., Ele é automaticamente aumentado ou diminuído durante cada repetição do loop.
sintaxe: –
For {start} {test} {next} {Body}
exemplo: em baixo exemplo, o valor de ‘i’ é definido como 0 e o valor aumentado do till <5.
#!/usr/bin/tclshfor {set i 0} {$i < 5} {incr i} {put $i}
saída: –