A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Shell Script Professor: João Paulo Baseado no material de Everson Scherrer Borges.

Apresentações semelhantes


Apresentação em tema: "Shell Script Professor: João Paulo Baseado no material de Everson Scherrer Borges."— Transcrição da apresentação:

1 Shell Script Professor: João Paulo Baseado no material de Everson Scherrer Borges

2 O que é Shell O Shell é o "prompt" da linha de comando do Linux, que recebe os comandos digitados pelo usuário e os executa, da mesma forma que o Prompt do MS-DOS tem esta função em sistemas Microsoft Windows. Mas o Shell é muito mais poderoso que seu primo distante. Além dos comandos básicos para navegar entre diretórios e manipular arquivos, ele também possui todas as estruturas de uma linguagem de programação, como IF, FOR, WHILE, variáveis e funções. Com isso, também é possível usar o Shell para fazer Scripts e automatizar tarefas.

3 Shell Script Um script é um arquivo que guarda vários comandos e pode ser executado sempre que preciso. Os comandos de um script são exatamente os mesmos que se digita no prompt, ou seja, são comandos que poderiam ser digitados diretamente no terminal e seriam executados. Script em inglês significa roteiro. Para criar um script deve-se criar um arquivo texto com diversos comandos. Estes comandos serão executados em ordem. Exatamente como num roteiro.

4 Shell Script A primeira linha do script, se inicia com uma sequência de caracteres #! e indica o interpretador a ser utilizado. Se o arquivo é executável pelo usuário, o shell invoca o comando passando como parâmetro o próprio arquivo do script. Assim, shell scripts devem indicar em sua primeira linha, o interpretador apropriado: #!/bin/bash echo Hello World Para executar o script, altere suas permissões com o comando chmod. Se o arquivo se chama hello.sh, por exemplo, execute-o com: chmod 777 hello.sh

5 Tipos de Shell Após isto, para executar o script, é só digitar./nome_do_script, pois para execução de scripts é necessário colocar o caminho absoluto para o script. Ksh - Korn Shell (David G. Korn at AT&T Bell Labs) Bsh – Bouner Shell (Steve Bourne 7ª versão do UNIX Bell Labs) Csh – C like shell Bash - GNU Bourne-Again SHell

6 Shell Script Variáveis em shell script podem ter nomes compostos por letras maiúsculas ou minúsculas, algarismos e o símbolo _. o nome de uma variável sempre deve ser iniciado por uma letra. As variáveis não precisam ser declaradas como em uma linguagem de programação compilada, é só usá- las e atribuir dados à elas, que podem ser strings, caracteres ou números.

7 Variáveis Incorporadas As variáveis incorporadas são variáveis especiais fornecidas pelo Linux, que podem ser usadas para se obter informações importantes dentro do script. Abaixo, temos alguns exemplos de variáveis incorporadas usadas como parâmetros: $0 : o nome do script $n : o n-ésimo argumento da linha de comando $* : todos os argumentos da linha de comando $# : número de argumentos $? : status do último comando executado (status <> 0 indica erro) $$ : número de processo (PID) do shell que executa o script

8 Testando Variáveis Incorporadas #!/bin/bash #exemplo de parâmetros de entrada echo "Nome do script : $0" echo "Primeiro parâmetro : $1" echo "Todos os parâmetros : $*" echo "Numero de parametros : $#" echo "Numero deste processo : $$"

9 Começando a Brincadeira Fazer um script chamado "sistema" e colocar estes comandos nele. O conteúdo do arquivo "sistema" seria o seguinte: #!/bin/bash date df -h w

10 Shell Script Executar os três comandos seguidos resulta em um bolo de texto na tela, misturando as informações e dificultando o entendimento. É preciso trabalhar um pouco a saída do script, tornandoa mais legível. Para usar o echo, basta colocar entre "aspas". O uso do echo sem aspas, fará com que ele ignore espaços em branco antes e depois da string referenciada. Se nenhum texto for colocado após o comando echo, o comando terá como resultado o aparecimento de uma linha em branco. #!/bin/bash echo "Data e Horário:" date echo echo "Uso do disco:" df echo echo "Usuários conectados:" w

11 Comandos para scripts interativos O comando read recebe a próxima linha da entrada (que pode ser a entrada padrão ou qualquer outra definida pelo usuário) e a atribui a uma variável. O exemplo abaixo mostra um exemplo de um script interativo, onde a informação é passada através do uso do read. #!/bin/bash echo "Digite seu nome:" read nome echo "Olá $nome como vai?"

12 Comandos para scripts interativos expr O comando expr trabalha com expressões matemáticas simples e somente números inteiros. Permite, também, manipulação de strings, mas com recursos limitados. Exemplos de operações matemáticas com expr podem ser vistos abaixo: [prompt]$ expr [prompt]$ expr [prompt]$ expr [prompt]$ expr 10 / 5 2 [prompt]$ expr 2 * 3 expr: erro de sintaxe [prompt]$ expr 2 \* 3 6 Exemplo: #!/bin/bash echo Entre com um número: read num1 echo Entre com outro número: read num2 echo O resultado da soma foi: expr $num1 + $num2

13 Comandos para scripts interativos Para se fazer a comparação em Bash, utiliza-se o comando test. A sua sintaxe é aceita de duas formas, com mostrado no comando abaixo. A segunda forma é mais recente e mais fácil de se entender. Mas, atenção para o fato de que é necessário haver um espaço em branco após o primeiro colchete ([) e um espaço em branco antes do último colchete (]), test expressão # Formato comum. [ expressão ] # Formato recente. [ s1 == s2 ] # Retorna verdadeiro se a string s1 for igual a string s2 [ s1 != s2 ] # Retorna verdadeiro se a string s1 for diferente da string s2.

14 Operadores numéricos Os operadores >, = e <= para efetuarem o efeito esperado com números, deverão fazer parte de expressões que estejam entre parênteses duplos. Se estiverem dentro de colchetes simples ou colchetes duplos, usarão ordem alfabética.

15 Estrutura de Controle IF A instrução if avalia uma expressão lógica para tomar uma decisão, e possui o formato apresentado abaixo. Para concluir a estrutura if usa-se o if escrito ao contrário: fi if comando 1 then... else comando 2... fi #!/bin/bash echo "Compara dois numeros" echo "Escreva o primeiro numero:" read n1 echo "Escreva o segundo numero:" read n2 if [ $n1 == $n2 ] then echo Os números são iguais" else echo Os números são diferentes" fi

16 Exemplos #!/bin/bash echo Entre com um número: read num if (( $num > 10 )) then echo "Você digitou um número maior que 10." else echo "Você digitou o número $num." fi

17 Estrutura de Controle Case A estrutura case permite selecionar uma entre várias opções de ação, baseando-se num valor de uma variável. Deve ser usada no lugar da declaração if quando esta tiver um grande número de condições. O exemplo no próximo slide mostra um exemplo de uso do case. Essa estrutura pode ser usada para executar declarações que dependem de um valor isolado ou de uma faixa de valores. Se nenhum valor for encontrado, há a opção de executar o valor padrão *. A variável definida logo após a instrução case tem que casar com alguma das opções em seguida. Se nenhuma opção for escolhida, a opção padrão será executada.

18 Estrutura Case #!/bin/bash echo Qual sua resposta? read opcao case $opcao in sim ) echo "Você concordou!" ;; nao ) echo "Que pena!" ;; * ) echo "Nem sim, nem não";; esac Deve-se observar que as instruções terminam com um duplo ponto-e-vírgula ;;. Se não for assim, a instrução seguinte será executada junto. Este duplo ponto-e- vírgula pode ser colocado depois da instrução ou na linha seguinte. Para encerrar a estrutura case usa-se esac, que é case escrito ao contrário.

19 Estrutura de repetição While A estrutura while pode ser usada para executar uma série de instruções enquanto uma condição especificada for verdadeira. O loop termina quando a condição especificada se tornar falsa e for verificada. #!/bin/bash i=1 while (( $i < 10 )) do echo "$i" i=expr $i + 1 done

20 Estrutura de Repetição For A estrutura for permite a repetição de um bloco de comandos dentro de um número pré-programado de repetições. Em shell script, sua sintaxe é semelhante à linguagem C. #!/bin/bash for (( i=1; $i < 10; i++)) do echo "$i" done

21 Funções Da mesma forma que em outras linguagens, Bash também aceita funções. Uma função é um pedaço de programa que executa um certo conjunto de instruções que pode ser usado mais de uma vez. Um função tem o formato abaixo: Os parênteses informam ao Bash que uma função está sendo especificada, a as instruções que serão executadas ficam entre chaves ({}). Pode-se observar que pelo menos um espaço em branco deve ser colocado entre as instruções e as chaves de início e fim. Quando a função é chamada no corpo do script, ela executará todas as instruções que foram colocadas entre as chaves. nome_funcao () { instrução 1 instrução 2 instrução 3... }

22 Funções No Bash, as funções devem ser declaradas antes de seu uso, porque ele interpreta as linhas do script seqüencialmente, do início ao fim. Bash não compila o script antes de sua execução, portanto não teria como saber de antemão o significado daquela função. #!/bin/bash saudacao () # Declaração da função saudacao(). { echo entre com seu nome: read nome echo Boa noite $nome!" } saudacao

23 Operadores Lógicos Os operadores mostrados abaixo são usados para comparar expressões usando as regras da lógica. E - && OU - || NÃO - ! Estes operadores permite combinar duas ou mais condições para que sejam testadas em conjunto. No próximo slide existe um exemplo de uso de scripts com operadores lógicos.

24 Operadores Lógicos #!/bin/bash echo Qual sua resposta? read opcao If [ $opcao == sim ] || [ $opcao == Sim ] then echo Você concordou! else If [ $opcao == não ] || [ $opcao == nao ] || [ $opcao == Não ] || [ $opcao == Nao ] then echo Que pena! else echo Nem sim, nem não! fi


Carregar ppt "Shell Script Professor: João Paulo Baseado no material de Everson Scherrer Borges."

Apresentações semelhantes


Anúncios Google