Sistemas Operacionais II O Shell Bash
Objetivos <ul><li>Conhecer a sintaxe dos comandos; </li></ul><ul><li>Trabalhar com funções; </li></ul><ul><li>Trabalhar co...
Escape
Exemplos
Funções <ul><li>Uma função de shell é um grupo de comandos dentro de um script de shell. As funções shell permitem modular...
Exemplo <ul><li> #!/bin/bash </li></ul><ul><li>#Criei uma funcao </li></ul><ul><li>minhaFuncao(){ </li></ul><ul><li>echo ...
Prática N. 01 <ul><li>Fazer uma função que escreva seu nome e chamar a função. </li></ul><ul><li>Todos os exercícios de Sc...
Parâmetros <ul><li>Utilizamos $ seguido da posição do parâmetro para capturar seu valor. </li></ul>
Exemplo <ul><li> #!/bin/bash </li></ul><ul><li>#Criei uma funcao </li></ul><ul><li>minhaFuncao(){ </li></ul><ul><li>echo ...
Resultado <ul><li> aluno@vml:~/Desktop$ bash executa.sh </li></ul><ul><li>Exemplo com dois parâmetros (Apenas uma função ...
Prática N. 02 <ul><li>Fazer uma função para realizar a divisão de um número por outro e retornar o valor. </li></ul>
Variáveis <ul><li>Variável é um espaço utilizado para armazenar um valor que ainda não se conhece (durante a codificação o...
Prática N. 03 <ul><li>Criar um script com uma variável e escrever ela na tela. </li></ul>
Variáveis Internas do Shell <ul><li>O Shell possui algumas variáveis internas usadas para desenvolver scripts de qualidade...
Variáveis Internas do Shell
Prática N. 04 <ul><li>Fazer um script que utilize todas as variáveis internas do shell, só que por favor, concatenar com t...
Outras variáveis do Shell
Array <ul><li>Array são coleções de elementos semelhantes. </li></ul><ul><li>mensagem=(prof wellington pinto de oliveira) ...
Array <ul><li>mensagem[0]=prof </li></ul><ul><li>mensagem[1]=wellington </li></ul><ul><li>mensagem[2]=pinto </li></ul><ul>...
Array
Prática N. 05 <ul><li>Fazer um array com seu nome e exibir o primeiro nome e o último nome. </li></ul>
Operadores <ul><li>O Bash utiliza os operadores aritméticos da linguagem C. </li></ul>
Operadores
Operadores
Exemplos <ul><li> #!/bin/bash </li></ul><ul><li>expr 1 + 3 </li></ul><ul><li>expr 2  –  1 </li></ul><ul><li>expr 10 / 2 <...
Prática N. 06 <ul><li>Fazer um script que utiliza os operadores (++ -- ** + - / *) </li></ul><ul><li>Usar os números do se...
Desvio de fluxo <ul><li>Utilizamos o if para desviar um fluxo dado uma condição. </li></ul><ul><li>i f condição </li></ul>...
Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>if [ $# = 0 ] </li></ul><ul><li>then </li></ul><ul><li>echo &quot;Não existe...
Prática N. 07 <ul><li>Se seu RA (registro acadêmico) for par escreva na tela  “ Meu RA é par ”  caso contrário escreva na ...
Laço de Repetição <ul><li>Permite realizar iterações um determinado bloco de script. </li></ul>
Sintaxe for <ul><li>for( inicial; condição; incremento) </li></ul><ul><li>do </li></ul><ul><li>done </li></ul>
Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>meuarray=(wellington pinto de oliveira) </li></ul><ul><li>tLen=${#meuarray[@...
Sintaxe for <ul><li>for elemento in coleção </li></ul><ul><li>do </li></ul><ul><li>done </li></ul>
Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>for pessoa in `users` </li></ul><ul><li>do </li></ul><ul><li>echo $pessoa </...
Prática N. 08 <ul><li>Fazer um script para listar o diretório corrente de execução e exibir somente os arquivos que são .s...
Prática N 09 <ul><li>Listar o diretório corrente e exibir o nome de todos os arquivos com menos de 10 caracteres (no nome)...
Prática N. 10 <ul><li>Listar o diretório Desktop (arquivos e diretórios) e exibir o tipo de arquivo ou diretório. </li></ul>
Prática N. 11 <ul><li>Exibir todos os usuários logados no formato: </li></ul><ul><li>Usuário: xxxxxx </li></ul><ul><li>O n...
Prática N. 12 <ul><li>Listar os grupos dos usuários, no formato: </li></ul><ul><li>Usuário xxxxx percente aos grupos: </li...
Prática N. 13 <ul><li>Para cada usuário criar a seguinte arvore de diretórios na posta home (do usuário). </li></ul><ul><l...
Prática N. 14 <ul><li>Pesquisar na web como usar o comando gzip </li></ul><ul><li>Criar um script para compactar a pasta ~...
Referência <ul><li>SILVER, Ellen; LOVE, Robert; ROBBINS, Arnold.  Linux: o guia essencial.  5. ed. Porto Alegre: Bookman, ...
Upcoming SlideShare
Loading in …5
×

Shell Script

2,068 views
1,916 views

Published on

Aula de Shell Script parte 2

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,068
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
98
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Shell Script

  1. 1. Sistemas Operacionais II O Shell Bash
  2. 2. Objetivos <ul><li>Conhecer a sintaxe dos comandos; </li></ul><ul><li>Trabalhar com funções; </li></ul><ul><li>Trabalhar com variáveis; </li></ul><ul><li>Expressões aritméticas; </li></ul><ul><li>Controle de Fluxo. </li></ul>
  3. 3. Escape
  4. 4. Exemplos
  5. 5. Funções <ul><li>Uma função de shell é um grupo de comandos dentro de um script de shell. As funções shell permitem modularizar seu programa, dividindo a complexidade em tarefas atômicas. </li></ul><ul><li>nome (){ </li></ul><ul><li>o script fica aqui dentro </li></ul><ul><li>} </li></ul>
  6. 6. Exemplo <ul><li> #!/bin/bash </li></ul><ul><li>#Criei uma funcao </li></ul><ul><li>minhaFuncao(){ </li></ul><ul><li>echo &quot;Apenas uma funcao Teste ” </li></ul><ul><li>} </li></ul><ul><li>#Chamando a funcao de dentro do script </li></ul><ul><li>minhaFuncao </li></ul>
  7. 7. Prática N. 01 <ul><li>Fazer uma função que escreva seu nome e chamar a função. </li></ul><ul><li>Todos os exercícios de Script devem ser enviado o script e não o resultado (output). </li></ul>
  8. 8. Parâmetros <ul><li>Utilizamos $ seguido da posição do parâmetro para capturar seu valor. </li></ul>
  9. 9. Exemplo <ul><li> #!/bin/bash </li></ul><ul><li>#Criei uma funcao </li></ul><ul><li>minhaFuncao(){ </li></ul><ul><li>echo &quot;Apenas uma funcao Teste com parametro $1 e $2 ” </li></ul><ul><li>} </li></ul><ul><li>#Chamando a funcao de dentro do script </li></ul><ul><li>echo &quot;Exemplo com dois parametros (`minhaFuncao Wellington Oliveira`)&quot; </li></ul>
  10. 10. Resultado <ul><li> aluno@vml:~/Desktop$ bash executa.sh </li></ul><ul><li>Exemplo com dois parâmetros (Apenas uma função Teste com parâmetro Wellington e Oliveira) </li></ul>
  11. 11. Prática N. 02 <ul><li>Fazer uma função para realizar a divisão de um número por outro e retornar o valor. </li></ul>
  12. 12. Variáveis <ul><li>Variável é um espaço utilizado para armazenar um valor que ainda não se conhece (durante a codificação ou edição de scripts). </li></ul><ul><li>Para criar: </li></ul><ul><li>var= “ Um exemplo ” </li></ul><ul><li>Para usar: </li></ul><ul><li>echo “ Estou usando a variavel: $var ” </li></ul>
  13. 13. Prática N. 03 <ul><li>Criar um script com uma variável e escrever ela na tela. </li></ul>
  14. 14. Variáveis Internas do Shell <ul><li>O Shell possui algumas variáveis internas usadas para desenvolver scripts de qualidade. </li></ul>
  15. 15. Variáveis Internas do Shell
  16. 16. Prática N. 04 <ul><li>Fazer um script que utilize todas as variáveis internas do shell, só que por favor, concatenar com texto para ficar show. </li></ul>
  17. 17. Outras variáveis do Shell
  18. 18. Array <ul><li>Array são coleções de elementos semelhantes. </li></ul><ul><li>mensagem=(prof wellington pinto de oliveira) </li></ul>
  19. 19. Array <ul><li>mensagem[0]=prof </li></ul><ul><li>mensagem[1]=wellington </li></ul><ul><li>mensagem[2]=pinto </li></ul><ul><li>mensagem[3]=de </li></ul><ul><li>mensagem[4]=oliveira </li></ul>
  20. 20. Array
  21. 21. Prática N. 05 <ul><li>Fazer um array com seu nome e exibir o primeiro nome e o último nome. </li></ul>
  22. 22. Operadores <ul><li>O Bash utiliza os operadores aritméticos da linguagem C. </li></ul>
  23. 23. Operadores
  24. 24. Operadores
  25. 25. Exemplos <ul><li> #!/bin/bash </li></ul><ul><li>expr 1 + 3 </li></ul><ul><li>expr 2 – 1 </li></ul><ul><li>expr 10 / 2 </li></ul><ul><li>expr 20 % 3 </li></ul><ul><li>expr 10 * 3 </li></ul><ul><li>echo `expr 6 + 3` </li></ul>
  26. 26. Prática N. 06 <ul><li>Fazer um script que utiliza os operadores (++ -- ** + - / *) </li></ul><ul><li>Usar os números do seu RA </li></ul>
  27. 27. Desvio de fluxo <ul><li>Utilizamos o if para desviar um fluxo dado uma condição. </li></ul><ul><li>i f condição </li></ul><ul><li>then </li></ul><ul><li>#bloco se verdade </li></ul><ul><li>e lse </li></ul><ul><li>#bloco se falso </li></ul><ul><li>fi </li></ul>
  28. 28. Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>if [ $# = 0 ] </li></ul><ul><li>then </li></ul><ul><li>echo &quot;Não existe Argumentos&quot; </li></ul><ul><li>else </li></ul><ul><li>echo &quot;Existe argumentos&quot; </li></ul><ul><li>fi </li></ul>
  29. 29. Prática N. 07 <ul><li>Se seu RA (registro acadêmico) for par escreva na tela “ Meu RA é par ” caso contrário escreva na tela “ Meu RA é Impar ” . </li></ul>
  30. 30. Laço de Repetição <ul><li>Permite realizar iterações um determinado bloco de script. </li></ul>
  31. 31. Sintaxe for <ul><li>for( inicial; condição; incremento) </li></ul><ul><li>do </li></ul><ul><li>done </li></ul>
  32. 32. Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>meuarray=(wellington pinto de oliveira) </li></ul><ul><li>tLen=${#meuarray[@]} </li></ul><ul><li>for (( i=0; i<${tLen}; i++ )); </li></ul><ul><li>do </li></ul><ul><li>echo &quot;Parte: ${meuarray[i]} &quot; </li></ul><ul><li>done </li></ul>
  33. 33. Sintaxe for <ul><li>for elemento in coleção </li></ul><ul><li>do </li></ul><ul><li>done </li></ul>
  34. 34. Exemplo <ul><li>#!/bin/bash </li></ul><ul><li>for pessoa in `users` </li></ul><ul><li>do </li></ul><ul><li>echo $pessoa </li></ul><ul><li>done </li></ul>
  35. 35. Prática N. 08 <ul><li>Fazer um script para listar o diretório corrente de execução e exibir somente os arquivos que são .sh </li></ul>
  36. 36. Prática N 09 <ul><li>Listar o diretório corrente e exibir o nome de todos os arquivos com menos de 10 caracteres (no nome). </li></ul>
  37. 37. Prática N. 10 <ul><li>Listar o diretório Desktop (arquivos e diretórios) e exibir o tipo de arquivo ou diretório. </li></ul>
  38. 38. Prática N. 11 <ul><li>Exibir todos os usuários logados no formato: </li></ul><ul><li>Usuário: xxxxxx </li></ul><ul><li>O nde xxxxx é o login do usuário </li></ul>
  39. 39. Prática N. 12 <ul><li>Listar os grupos dos usuários, no formato: </li></ul><ul><li>Usuário xxxxx percente aos grupos: </li></ul><ul><li>-yyyyy </li></ul><ul><li>-yyyyy </li></ul>
  40. 40. Prática N. 13 <ul><li>Para cada usuário criar a seguinte arvore de diretórios na posta home (do usuário). </li></ul><ul><li>~/Faculdade/SistemasOperacionasi </li></ul><ul><li>~/Faculdade/LinguagemdeProgramacao </li></ul><ul><li>~/Faculdade/InteligenciaArtificial </li></ul><ul><li>~/Diversao/Livros </li></ul><ul><li>~/Diversao/Trabalhos </li></ul><ul><li>~/Diversao/TestesProgramacao </li></ul>
  41. 41. Prática N. 14 <ul><li>Pesquisar na web como usar o comando gzip </li></ul><ul><li>Criar um script para compactar a pasta ~ do usuário e salvar em /backup/nomedousuario.gz </li></ul>
  42. 42. Referência <ul><li>SILVER, Ellen; LOVE, Robert; ROBBINS, Arnold. Linux: o guia essencial. 5. ed. Porto Alegre: Bookman, 2006. </li></ul>

×