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