Sistemas Operacionais II
O Shell Bash
Objetivos
• Conhecer a sintaxe dos comandos;
• Trabalhar com funções;
• Trabalhar com variáveis;
• Expressões aritméticas;
• Controle de Fluxo.
Escape
Exemplos
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
}
Exemplo
#!/bin/bash

#Criei uma funcao
minhaFuncao(){
echo "Apenas uma funcao Teste”
}
#Chamando a funcao de dentro do script
minhaFuncao
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).
Parâmetros
Utilizamos $ seguido da posição do parâmetro
para capturar seu valor.
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`)"
Resultado
aluno@vml:~/Desktop$ bash executa.sh

Exemplo com dois parâmetros (Apenas uma
função Teste com parâmetro Wellington e
Oliveira)
Prática N. 02
Fazer uma função para realizar a divisão de um
número por outro e retornar o valor.
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”
Prática N. 03
Criar um script com uma variável e escrever ela
na tela.
Variáveis Internas do Shell
O Shell possui algumas variáveis internas usadas
para desenvolver scripts de qualidade.
Variáveis Internas do Shell
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.
Outras variáveis do Shell
Array
Array são coleções de elementos semelhantes.
mensagem=(prof wellington pinto de oliveira)
Array
mensagem[0]=prof
mensagem[1]=wellington
mensagem[2]=pinto
mensagem[3]=de
mensagem[4]=oliveira
Array
Prática N. 05
Fazer um array com seu nome e exibir o primeiro
nome e o último nome.
Operadores
O Bash utiliza os operadores aritméticos da
linguagem C.
Operadores
Operadores
Exemplos
#!/bin/bash

expr 1 + 3
expr 2 – 1
expr 10 / 2
expr 20 % 3
expr 10 \* 3
echo `expr 6 + 3`
Prática N. 06
Fazer um script que utiliza os operadores (++ -** + - / *)
Usar os números do seu RA
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
Exemplo
#!/bin/bash
if [ $# = 0 ]
then
echo "Não existe Argumentos"
else
echo "Existe argumentos"
fi
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”.
Laço de Repetição
Permite realizar iterações um determinado bloco
de script.
Sintaxe for
for( inicial; condição; incremento)
do
done
Exemplo
#!/bin/bash
meuarray=(wellington pinto de oliveira)
tLen=${#meuarray[@]}
for (( i=0; i<${tLen}; i++ ));
do
echo "Parte: ${meuarray[i]} "
done
Sintaxe for
for elemento in coleção
do
done
Exemplo
#!/bin/bash
for pessoa in `users`
do
echo $pessoa
done
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
Prática N 09
Listar o diretório corrente e exibir o nome de
todos os arquivos com menos de 10 caracteres
(no nome).
Prática N. 10
Listar o diretório Desktop (arquivos e diretórios) e
exibir o tipo de arquivo ou diretório.
Prática N. 11
Exibir todos os usuários logados no formato:
Usuário: xxxxxx
Onde xxxxx é o login do usuário
Prática N. 12
Listar os grupos dos usuários, no formato:
Usuário xxxxx percente aos grupos:
-yyyyy
-yyyyy
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
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
Referência
• SILVER, Ellen; LOVE, Robert; ROBBINS, Arnold.
Linux: o guia essencial. 5. ed. Porto Alegre:
Bookman, 2006.
Download

Shell_BASH - Prof. Elmer Sens