Your SlideShare is downloading. ×
Shellscript
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Shellscript

1,781

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,781
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  O que é shell?  É uma ligação entre o usuário e o kernel. UsuárioProf. Tarcísio Franco Shell Kernel HD
  • 2. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  O que é script? – É um arquivo que guarda vários comandos e pode ser executado sempre que precisoProf. Tarcísio Franco – Bom para automatizar tarefas repetitivas – Comandos de um script são exatamente os mesmos que se digita no prompt
  • 3. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script O que é um programa? Principais diferenças entre scripts e programa Script ProgramaProf. Tarcísio Franco Codificação Codificação cautelosa descuidada Código feio e sem Código limpo estrutura Pouca manutenção, Evolução constante descartável Feito por um usuário Feito por um ou mais programadores
  • 4. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Criando um Script. – A primeira linha do script(arquivo) deverá ser: #!/bin/bashProf. Tarcísio Franco – O arquivo tem que ser executável: chmod +x script.sh ; ./script.sh EX.: De vez em quando é necessário saber das horas, uso do disco e quem está conectado a máquina. Criar um script que junte tudo isso.
  • 5. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Variáveis: basta usar o sinal “=” $ VARIAVEL=”sim” – Para obter o conteúdo da variável usá-se:Prof. Tarcísio Franco $ echo $VARIAVEL OBS: unset apaga a variavel Pode-se inserir a saída de um comando em uma variável: $ HOJE=$(date) ; echo “Hoje é: $HOJE” Expressões aritméticas: $((...)) Echo $((2*3)) ; NUM=2 ; NUM=echo $((NUM+2))
  • 6. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Argumentos: dados via linha de comando – $0 : nome do script – $1,$2... : primeiro, segundo...Prof. Tarcísio Franco Argumentos – $* : todos argumentos Comandos: • read: faz a leitura que o usuario digitou e guarda em uma variável. $ read RESPOSTA $ echo $RESPOSTA
  • 7. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Test: consegue fazer vários tipos de testes em números, textos e arquivos. $ test $VARIAVEL = “sim” && echo “cont...” obs: && - só executa o segundo comando caso oProf. Tarcísio Franco primeiro tenha sido OK. O operador inverso é o || Outra maneira é: $ [ $VARIAVEL = “sim” ] && echo “cont...”
  • 8. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script Testes em variáveis OPÇÃO DESCRIÇÃO -lt Número é menor que (LessThan) -gt Número é maior que (GreaterThan)Prof. Tarcísio Franco -le Número é menor igual (LessEqual) -ge Número é maior igual m(GreaterEqual) -eq Número é igual (EQual) -ne Número é diferente (NotEqual) = String é igual != String é diferente -n String é não nula -z String é nula
  • 9. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Testes em arquivos Opção Descrição -d É um diretório -f É um arquivoProf. Tarcísio Franco -r O arquivo tem permissão de leitura -s O tamanho do arquivo é maior que zero -w Oarquivo tem permissao de escrita -nt O arquivo é mais recente (NewerThan) -ot O arquivo é mais antigo(OlderThan) -ef O arquivo é o mesmo(EqualFile)
  • 10. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • if: diferentes de outras linguagens, o if testa um comando e não uma condição. if COMANDO then COMANDOSProf. Tarcísio Franco else COMANDOS fi Ex.: saber se uma variável é maior ou menor do que 10 if test $VAR –gt 10 then echo “É maior que 10” else echo “É menor que 10”
  • 11. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script Também pode-se fazer por um atalho para ficar mais parecido com o formato tradicional.Prof. Tarcísio Franco Ex.: saber se uma variável é maior ou menor do que 10 if [ “$VAR” –gt 10 ] then echo “É maior que 10” else echo “É menor que 10”
  • 12. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • for: percorre uma lista de palavras, pegando uma por vez. for VAR in LISTA doProf. Tarcísio Franco COMANDOS done Ex.: for numero in um dois tres quatro cinco do echo “Contando: $numero” done
  • 13. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • while: é um laço que é executado enquanto um comando retorna OK. while COMANDOS doProf. Tarcísio Franco comandos done Ex.: while test $numero –le 10 do numero=$((numero+1)) echo “Contando: $numero” done
  • 14. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Case: evita o aninhamento de ifs case VARIAVEL in opcao)Prof. Tarcísio Franco … ;; opcao 1|opcao 2) … ;; esac
  • 15. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script • Case: Ex.: case $op inProf. Tarcísio Franco -h|--help) echo "$op" ;; -v) echo "$op" ;; esac
  • 16. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell script 1) Mostrar todos os usuários que estão no arquivo /etc/passwd com seus nomes completos (campos 1 e 5) 2) Recebe dois números como parâmetros eProf. Tarcísio Franco mostra qual a relação entre eles Ex.: $relacao.sh 3 5 3 é menor que 5 3) Recebe um número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo. Ex.: $zerador.sh 5 543210
  • 17. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell script 1) #!/bin/bash cat /etc/passwd | cut –d : -f 1,5 2)Prof. Tarcísio Franco #!/bin/bash If test $1 –eq $2 then Echo “$1 é igual $2” elif test $1 –lt $2 then Echo “$1 é menor que $2” Else Echo “$1 é maior que $2” fi 3) #!/bin/bash i=$1 While test –ge 0 do echo –n “$i” i=$((i-1)) Done Echo
  • 18. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  Controle de qualidada, deixando o código mais amigável:  Cabeçalho inicialProf. Tarcísio Franco  Código alinhado  Comentários  Nomes descritivos  Controle de alterações de versões
  • 19. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  Cabeçalho Inicial − Informar do que se trata o programa para outro programador saber o queProf. Tarcísio Franco faz, e como faz. # Este seria um início de cabeçalho # com mais de uma linha
  • 20. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  Cabeçalho Inicial (sugestão de um cabeçalho informativo) − Localização (path) do interpretador.Prof. Tarcísio Franco − Nome do programa − Descrição breve do propósito / site − Nome autor − E-mail do autor − Data criação − Histórico de mudanças
  • 21. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  Código alinhado dialog –-title “Título da Caixa” –-msgbox “Esta é a mensagem” 0 0 Pode ficar assim:Prof. Tarcísio Franco - dialog –-title “Título da Caixa” –-msgbox “Esta é a mensagem” 00
  • 22. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script  Comentários − Comentários de uma linha: # Converter o email para maiúsculoProf. Tarcísio Franco echo “$email” | tr a-z A-Z - Comentários de meia linha: echo “$email” # Mostra o email na tela
  • 23. UESPI – Universidade Estadual do Piauí - OPTATIVA I Shell Script A três tipos de especiais de comentários em todas as linguagens de programação:Prof. Tarcísio Franco TODO Indica uma tarefa a ser feita, uma pendência ainda não resolvida. #TODO Colocar este trecho em uma função FIXME Indica um bug conhecido, que precisa ser arrumado. #FIXME Este loop não funciona com números negativos XXX Chama a atenção, é um recado ou uma notícia imoprtante. #XXX Tenho que alterar esta função para retornar inteiro

×