Buscar

PROGRAMÇÃO PARA SERVIDORES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

Programação para
Servidores
Aula 2 - Programação Script 1 – Variáveis e
testes
INTRODUÇÃO
Na aula 2, vamos começar a construir os primeiros scripts. Inicialmente com reduzida complexidade e depois
apresentaremos os conceitos de variáveis, sua simbologia e sintaxe.
Veremos também os argumentos ou, melhor, os valores enviados ao script. Finalizaremos com as estruturas de
decisão if / then / else / � (sim, termina com � – if ao contrário) e case, que termina com esac.
OBJETIVOS
Explicar a substituição de variáveis em shell script;
Identi�car os tipos de variáveis especiais e as formas de proteção de variáveis com aspas;
Identi�car os mecanismos de testes em shell script;
Aplicar as estruturas de decisão if/else.
VARIÁVEIS
Durante seu curso, você já deve ter ouvido o termo “variável” diversas vezes, mas você saberia explicar o conceito de
variável?
Variável é a forma que as linguagens de programação utilizam para representar dados.
Uma variável nada mais é do que um rótulo, um nome atribuído a uma posição ou conjunto de posições na memória do
computador contendo um item de dados. Cada variável possui um valor, que representa a informação que foi atribuída
a ela.
Compreendeu? Observe a seguinte analogia:
Imagine uma posição na memória do computador como um pote.
Agora, imagine que você precisa do conteúdo de um determinado pote. Mas, como são muitos potes, como você
escolherá o certo?
Neste exemplo, a variável “comprimidos” poderia ter como valor “aspirina”.
Em shell script, o nome de uma variável começa sempre por uma letra ou por um sublinhado, e pode conter qualquer
quantidade de letras, dígitos e/ou sublinhados.
O conteúdo de uma variável é armazenado como uma string e não há limite para a quantidade de caracteres que ela
pode conter.
A atribuição de valores a uma variável é feita escrevendo-se o nome da variável seguido imediatamente do caractere =
e o valor a ser atribuído, sem qualquer espaço entre eles.
Para atribuir uma variável com valor que contenha espaços, o valor deverá ser colocado entre aspas.
Veja alguns exemplos de atribuição de valores a variáveis:
Para obter o valor de uma variável, utiliza-se o caractere $ precedendo seu nome. Por exemplo:
Para limpar o valor de uma variável basta fazer uma atribuição nula. Por exemplo:
Ao contrário de muitas linguagens de programação, o shell não separa suas variáveis por tipo (glossário). Em shell
script, as variáveis são sequências de caracteres (strings), mas, dependendo do contexto, podem ser realizadas
operações aritméticas sobre as variáveis.
ARGUMENTOS
Os argumentos são passados para o script a partir da linha de comando por intermédio das variáveis.
Quando executamos um script como o exemplo a seguir, o servidor1, servidor2.com e 5 são três parâmetros passados
ao script.
Observe outro exemplo:
Depois de 9, os argumentos devem ser colocados entre chaves. Por exemplo:
PROTEÇÃO COM ASPAS
Proteção com aspas (quoting) é a forma utilizada para informar ao shell como interpretar os dados passados.
ESCAPE COM BARRA INVERTIDA
Preceder um caractere com uma barra invertida (\) diz ao shell para tratar literalmente o caractere.
ASPAS SIMPLES
Aspas simples ('......') forçam o shell a tratar literalmente tudo o que estiver entre o par de aspas.
Não é possível encaixar aspas simples dentro de uma string protegida por aspas simples, pois nem a barra invertida é
especial dentro de aspas simples.
ASPAS DUPLAS
Aspas duplas ("......") agrupam o texto como uma única string, porém o shell processa caracteres de escape, variáveis,
substituição de comandos etc.
ESTRUTURA DE DECISÃO - IF
O construtor if/then testa se a saída do comando anterior é 0 (em UNIX, 0 signi�ca sucesso) e, em caso a�rmativo,
executa um ou mais comandos.
Em versões mais recentes do shell, foi introduzido o comando [[ ... ]], que estendeu os comandos de teste realizando
comparações de uma forma mais familiar para os programadores de outras linguagens.
É comum esbarrar na sintaxe de um comando, o foco é o problema que se pretende resolver.
Após de�nir a lógica é que testaremos a sintaxe.
Vamos começar com um problema simples:
Comparar duas variáveis “a” e “b”;
Se “a” for maior, escrever a mensagem “a é maior que b”;
Se “b” for maior, a mensagem é “b é maior que a”.
Em pseudocódigo teríamos:
Faltou veri�car se são iguais. Para isso, poderíamos combinar outro SE para esse teste.
Num script em bash teríamos:
Aproveite e teste este código criando o script aula2-1.sh.
Vamos, analisar mais um script (os comentários vem
depois de #):
Em estruturas de decisão, comparamos valores simples ou compostos e podemos ter diversas soluções. No caso
acima, são 3 possibilidades.
Melhorando esse código, podemos resolver aquele problema de testar se a e b são iguais com “elif”.
Continue testando...
Mas esse script ainda não atende ao principal propósito de
um script. Então, por que construir um para comparar 3 e
5?
Usamos esse exemplo apenas para demonstrar o uso dos comandos.
Scripts são construídos para soluções em qualquer caso. Ainda, nesse exemplo, poderíamos generalizar a solução
usando argumentos passados ao script.
Veja o próximo script:
Para que este script funcione a chamada deveria ser:
Onde 5 é o primeiro argumento ($1) e 3 é o segundo argumento ($2).
Agora temos um script capaz de comparar dois valores quaisquer.
Vamos lá, teste este script também. Se restaram dúvidas,
repita ou use os fóruns para discutir o assunto.
O construtor if/then pode testar a saída de qualquer comando, não se limitando apenas a testes entre colchetes.
Na prática, a resposta da estrutura de decisão será sempre verdadeiro ou falso.
De uma forma mais ampla, a estrutura do construtor if/then pode ser:
OPERADORES DE TESTE EM ARQUIVOS
Veja alguns operadores para teste em arquivos:
Observe um exemplo da utilização do operador –f:
ESTRUTURA DE DECISÃO COM CASE
Se for preciso veri�car o valor de uma variável dentre muitos, pode ser utilizada uma série de encadeamento de testes
if e elif. Porém, o shell possui a construção case que pode ser utilizada com muito mais facilidade para o casamento
de padrões.
Sua sintaxe é:
Exemplo da utilização do case:
ATIVIDADE
Você já deve ter percebido que, ao longo de nossas aulas, algumas tarefas simples serão repetitivas.
Uma delas é que a cada exemplo precisamos criar um novo script, alterar suas propriedades com “chmod 777 nome-
script.sh” e inserir a linha “#!/bin/bash” no topo do script para iniciar o trabalho.
Sua tarefa é criar um script novo.sh que realize as tarefas acima com uma chamada do tipo:
Onde script.sh é o arquivo a ser criado.
Resposta Correta
1. Uma variável em Shell Script:
Deve ser ter seu tipo declarado, como “int a”.
Não pode ser rede�nida ao longo do Script.
Tem seu valor atribuído diretamente como em “x=5”.
Tem seu valor atribuído como em “$x=5”.
As variáveis sempre recebem $ na frente, seja na atribuição de valores seja nas operações com a variável.
Justi�cativa
2. Ao chamar um script com o comando:
As variáveis $0 e $ 2 serão:
servidor1 e servidor
script.sh e .com
servidor1 e .com
script.sh e servidor2.com
servidor 1 e 5
Justi�cativa
3. O comando ./script.sh 4 5 enviado a script.sh cujo código está abaixo:
Apresenta como resultado:
b é maior que a
a é maior que b
b é menor que a
a é menor que b
erro pois $1 não foi de�nido
Justi�cativa
4. No Script abaixo:
Qual a mensagem de resposta caso a chamada fosse ./script.sh 20 20?
a igual a b
a maior que b
a menor que b
Nenhuma das condições
b maior que a
Justi�cativa
5. O script1.sh tem o conteúdo:
O script2.sh tem o conteúdo:
O comando ./script1.sh apresenta como resposta na tela:
Preto e Branco
Rubro-Negro
Fluminense Tricolor
Vasco CampeãoNenhuma resposta
Justi�cativa
Glossário
TIPO
Algumas linguagens separam suas variáveis por tipo, como double, int e �oat utilizados para guardar valores numerais.

Outros materiais