Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 1/10 Programação para Servidores Aula 03: Programação Script 2 - Operadores, repetições e tomadas de decisões INTRODUÇÃO Na aula 3 nossa abordagem �ca um pouco mais complexa e objetiva, pois começamos a trabalhar com operadores e estruturas de repetição. Muito do que foi visto em Lógica de Programação se repete agora, só que empregando outra linguagem. Você deve lembrar que os professores disseram que o importante é a lógica na solução do problema, a linguagem é apenas um detalhe. Pois é, vamos colocar em prática esses conceitos. 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 2/10 Veremos inicialmente como atribuir valores a variáveis e ainda como realizar operações aritméticas, bem como utilizar operadores para comparar números, strings e valores lógicos. Vamos �nalizar com as estruturas de repetição for, while e until. OBJETIVOS Identi�car os operadores utilizados em shell script; Analisar as estruturas de repetições e desvios; De�nir a melhor estrutura a ser utilizada em cada caso; Aplicar as estruturas de repetição e tomadas de decisão na construção de scripts. 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 3/10 OPERADORES O principal operador em shell script é o operador de atribuição (=). Ele atribui um valor a uma variável, porém o faz interpretando tudo o que vem à direita do = como uma string. Para efetuar a operação matemática sugerida, devemos utilizar o comando let. Observe os comandos a seguir: Fonte: Os interpretadores de comandos mais atuais trabalham com variáveis inteiras de 64 bits, enquanto números em ponto �utuante são tratados como strings. VAMOS TESTAR? Construa o script aula3-1.sh Teste e veja o que será exibido. Se não aparecer 8 refaça até funcionar. Corrigiu o script? OPERADORES Agora, veremos os tipos de operadores: 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 4/10 ESTRUTURAS DE REPETIÇÃO Estruturas de repetição são blocos de código que têm sua execução repetida baseada em valores de variáveis de controle. Veremos, a seguir, as estruturas de repetição e exemplos do uso de cada uma delas. FOR (para) A estrutura for interage sobre uma lista de objetos, executando um bloco de comandos para cada objeto. Objetos podem ser qualquer coisa que possa ser criada em forma de lista. Por exemplo, para listar (comando ls) todos os arquivos de um diretório. Veja, abaixo, a sintaxe básica do for: 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 5/10 Vamos a alguns exemplos: Tente inclui-los em scripts e veja seu funcionamento, altere os valores, erre e acerte. Não há outra forma de aprender senão executando. For - Exemplo 1 For - Exemplo 2 Onde comando_1, comando_2 e comando_3 poderiam realizar ações sobre os arquivos .txt do diretório. For - Exemplo 3 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 6/10 Esse script lista os arquivos .sh do diretório do seu script. For - Exemplo 4 Nesse Script temos os valores das variáveis de teste explícitos no loop: ACHOU O ÚLTIMO SCRIPT DO EXEMPLO 3 CONFUSO? CONSTRUA OUTRO SCRIPT QUE LISTE OS ARQUIVOS COM EXTENSÃO.CONF DENTRO DO DIRETÓRIO /ETC. TENTE RESOLVER O PROBLEMA E OLHE A RESPOSTA DEPOIS. Resposta Correta While (enquanto) O while testa uma condição no início de um laço e �ca em loop enquanto essa condição for verdadeira. Ao contrário do laço for, o while é utilizado em situações onde o número de repetições do laço não é conhecido de antemão. A lógica do comando é: Para o correto funcionamento é fundamental que: • A variável de controle (o x do exemplo) seja inicializada; e • A variável de controle seja alterada para que em algum momento a condição deixe de ser verdadeira e o loop (glossário) se encerre. Exemplos de utilização do while: Until (até) O until testa por uma condição no início de um laço e �ca em loop enquanto essa condição for falsa (seu teste na variável de controle é o oposto do while). Sua sintaxe é: 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 7/10 Exemplo de utilização do until: ATIVIDADE Utilizando Estruturas de Repetição desenvolva um script que faça uma contagem regressiva de 10 até 1: • Há o risco de criar um loop in�nito, se sua variável de controle não for alterada. Não se desespere, isso acontece com todo mundo. Basta digitar CTRL + z, editar o arquivo e recomeçar. • Para o script ir mais devagar insira o comando sleep 1, que o programa dá uma parada de 1 segundo. Não adianta ver apenas a solução, tente realizar o trabalho sozinho. Resposta Correta EXERCÍCIOS 1. No Script: O que aparece como resposta na tela? 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 8/10 8 Soma = 5+3 Soma = 8 “Soma =” $c “Soma = “$a +$b Justi�cativa 2. No Script: Qual a ação realizada? Sobrescreve o conteúdo de /etc. Exibe os arquivos .conf em /etc. Lista os arquivos no diretório do script. Exibe os valores inteiros de i, de 0 até o valor de conf. Não exibe nenhum valor. Justi�cativa 3. Complete a lacuna no Script abaixo para que ele exiba os inteiros entre 10 e 1: let n=n-1 gt=gt+1 gt+=1 n=n+1 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 9/10 $n = gt + 1 Justi�cativa 4. No script abaixo o que será exibido na tela: 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 a $a Nenhuma resposta Justi�cativa 5. Em relação aos “loops” while e until, podemos dizer que: No while não há possibilidade de ocorrer loop in�nito. Until mantém o loop por uma sequência de valores pré-de�nidos. While �ca em loop até a variável de controle tornar-se falsa. Until e while são equivalentes. A condição do until não necessita de variável de controle. Justi�cativa 22/06/2018 Disciplina Portal http://lms4.2.webaula.com.br/portaldoaluno/training/classroom?classId=653021 10/10 Glossário JÁ OUVIU FALAR DE LOOP INFINITO? Basta esquecer de incrementar ou decrementar a variável de controle. Aconteceu com você? Não se preocupe, digite CTRL + z para parar o script, edite o código fonte e continue tentando. Vamos agora à sintaxe:
Compartilhar