42
Sistemas Operacionais II O Shell Bash

Sistemas Operacionais II O Shell Bash. Objetivos Conhecer a sintaxe dos comandos; Trabalhar com funções; Trabalhar com variáveis; Expressões aritméticas;

Embed Size (px)

Citation preview

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

Referência

• SILVER, Ellen; LOVE, Robert; ROBBINS, Arnold. Linux: o guia essencial. 5. ed. Porto Alegre: Bookman, 2006.