Buscar

Aula 5 Shell Script Arquivo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Superior de Analise e Desenvolvimento de Sistemas
Serviços Básicos de Redes para WEB
Fernando Costenaro Silva
fernando.costenaro@sc.senai.br
Shell Script
• Introdução
• Comandos
• Variáveis
• Comparação
• Laços de repetição
• Funções
• Vetores
• Getopts
Shell Script
Introdução
• Script é um arquivo com várias instruções para serem
executadas pelo Shell que é o interpretador de comandos.
• Com ele podemos automatizar muitas tarefas no Linux
criando grandes facilidades.
Comandos
• Alguns comandos básicos:
Comandos
• Podemos utilizar todos os comandos aprendidos nas aulas anteriores também:
Comandos
• Podemos utilizar todos os comandos aprendidos nas aulas anteriores também:
Criando um Shell Script
• Com o editor de texto de sua escolha, crie um arquivo.
• Ex.: #nano aula #vi aula
• A primeira linha do script deve ser:
#!/bin/bash
Criando um Shell Script
• Para tornar o script executável devemos dar permissão de
execução para o dono do arquivo:
• $ chmod +x aula
• $ chmod 744 aula
• Para executar o script:
$ ./script
Variáveis
• Para armazenar ou atribuir um valor a uma variável, basta
colocar o nome da variável, sinal de “ = “ colado ao nome
escolhido e, colado ao sinal de igual, o valor estipulado.
• Ex.: VAR_1=123
• Por padrão, as variáveis são escritas em UPPERCASE.
• Podem ser utilizados letras (a-z e A-Z), números (0-9) e _.
Variáveis
• É possível determinar que a variável seja apenas de leitura
com o comando “readonly VAR”.
• Ex.:
VAR=“abc”
readonly VAR
VAR=“123” (erro: This variable is read only.)
Variáveis
• Para acessar o valor de uma variável é preciso adicionar o
cifrão ($) no início da mesma: $VAR. Assim, para imprimir o
valor de uma variável utilizamos o comando “echo $VAR”.
• Ex.:
VAR=123
echo “valor = $VAR”
Variáveis
• Para deletar a variável da lista de variáveis do shell basta
utilizar o comando “unset VAR”. Não é possível utilizar o
comando unset em variáveis configuradas como readonly.
• Ex.:
VAR=123
echo $VAR
unset VAR
echo $VAR
Variáveis
• Para ler de um arquivo utilizamos um comando de leitura
com o caminho e o nome do arquivo:
VAR=$(cat /etc/arquivo)
• Para ler o valor digitado pelo usuário:
read VAR
Variáveis
• Exercícios:
1 - Criar um script com 2 variáveis. Os valores das variáveis devem
ser lidos do usuário, e em seguida, o script deve imprimir o nome e o valor das
variáveis.
2 - Criar um script com 2 variáveis. O script deve perguntar o local de
um arquivo a ser lido (ex.: /etc/arq1) e armazenar em uma variável. Em
seguida, deve ler e armazenar o conteúdo do arquivo na outra variável. Por
fim, imprima o nome e o valor das variáveis.
VAR=$(cat /etc/arquivo)
Operadores
• Existem vários tipos de operadores suportados por cada
shell. No BASH temos operadores:
• Aritiméticos
• Relacionais
• Booleanos
• Strings
• Arquivos
Operadores Aritiméticos
• O BASH utiliza outros programas internos para executar
operações aritméticas, como o expr _, let _, $((_)), bc _,
awk, python, etc. Exemplo:
VAR1=$(expr 1 + 1)
let VAR2=$VAR1+1
VAR3=$(($VAR2+1))
VAR4=$(echo $VAR3+1 | bc)
VAR5=$(awk "BEGIN {print $VAR4+1; exit}")
VAR6=$(python -c "print $VAR5+1")
Operadores Aritiméticos
Operadores Aritiméticos
• Obs.: Todas as expressões condicionais devem seguir o formato:
[ $A == $B ], com espaços entre os colchetes, variáveis e o operador.
Operador Função
+ Adição
- Subtração
* Multiplicação
/ divisão
% Resto da divisão
= Atribuição
== Igualdade
!= Desigualdade
Operadores Relacionais
• O Bourne Shell suporta os seguintes operadores relacionais
que são específicos para valores numéricos. Esses
operadores não funcionam para valores de sequência de
caracteres, a menos que seu valor seja numérico.
Operador Função exemplo Equivalente C
-eq Igualdade [ $A –eq $B ] A == B
-ne Desigualdade [ $A –ne $B ] A != B
-gt Maior que [ $A –gt $B ] A > B
-lt Menor que [ $A –lt $B ] A < B
-ge Maior ou igual a [ $A –ge $B ] A >= B
-le Menor ou igual a [ $A –le $B ] A <= B
Operadores Booleanos e String
• Booleanos:
• String:
Operador Função exemplo Equivalente C
! Negação [ !A ] !A
-o OR [ $A –gt $B –o $A –gt $C ] A >= B || A >= C
-a AND [ $A –gt $B –a $A –gt $C ] A >= B && A >= C
Operador Função exemplo
= Igualdade [ $A = $B ]
!= Desigualdade [ $A != $B ]
-z Size = 0 [ –z $A ]
-n Size != 0 [ -n $A ]
str String não vazia [ $A ]
Comparação
• O Bourne Shell suporta as seguintes expressões
condicionais:
• if...fi
• if...else...fi
• if...elif...else...fi
• case...esac
Comparação
• A expressão if...fi é a instrução de controle fundamental que
permite à Shell tomar decisões e executar declarações
condicionais:
if [ expressão ]
then
#executa se a expressão for verdadeira
fi
Comparação
• A expressão if...else...fi é a instrução de controle que
permite à Shell tomar outra decisão caso o resultado da
expressão seja falsa.
if [ expressão ]
then
#executa se a expressão for verdadeira
else
#executa se a expressão 1 for falsa
fi
Comparação
• A expressão if...elif...else...fi é a instrução de controle que
permite à Shell tomar uma decisão com base em diversas
opções.
if [expressão_1 ]
then
#executa se a expressão 1 for verdadeira
elif [expressão_2 ]
then
#executa se a expressão 2 for verdadeira
else
#executa se as expressões não forem verdadeiras
fi
Comparação
• Se temos diversas opções para uma mesma variável,
podemos utilizar a expressão case...esac, em vez de utilizar
a expressão if...elif...else...fi:
case $VAR in
1) # equivalente à case 1
#executa_algo
;;
2) # equivalente à case 2
#executa_algo
;;
*) #default
#executa_algo
;;
esac
Comparação
• Exercícios:
3 – Ler três números do usuário e mostrar o maior
utilizando a expressão if if...elif...else...fi.
4 – Criar um menu com 5 opções. Exibir para o usuário o
menu, que vai escolher um número entre 1 e 5. Com base na
escolha, informar uma descrição do item selecionado. Utilize a
expressão case...esac.
Comparação
• Exercícios:
5a – Criar um arquivo com nomes e telefones (pelo menos 5):
Fulano de Tal;(49) 3028-0103
Pedro de Cabral;(51) 4047-3030
5b – Criar um script que busque (grep) no arquivo um nome
digitado pelo usuário e mostre o telefone encontrado (cut).
Informar também se o nome não foi encontrado.

Outros materiais