Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Objetivos da aula
3
Shell Script I
Introdução ao Shell Script
Um script é uma sequência de instruções que são executadas
toda vez que o mesmo é chamado.
Compilados X Scripts
● Binário → Programa compilado interpretado pelo processador
da máquina. Exemplos: C, C++, Fortran ...
● Script → Programa não compilado interpretado por uma shell.
Exemplos: Shell, javascript, php ...
4
Shell Script I
Estrutura de Shell Script
➢ Arquivo de texto;
➢ Comandos estruturados;
➢ Permissão de execução.
5
Shell Script I
Uso de variáveis
Exemplo simples:
#!/bin/bash
USUARIO=aluno
echo $USUARIO
6
Shell Script I
Uso de variáveis
Exemplo com comandos:
#!/bin/bash
LISTA=$(awk -F: '$3 >= 1000 {print $1}' /etc/passwd)
TODAY=$(date +%d-%m-%Y)
7
Shell Script I
Variáveis especiais
$1 → Armazena primeiro parâmetro, $2 → Armazena segundo
parâmetro, $3 …....
Sintaxe: comando <parâmetro> <parâmetro> <parâmetro>
echo $1 $2 $3
8
Shell Script I
Variáveis especiais
$* → Armazena todos os parâmetros passados sem ter limites;
$# → Armazena a quantidade de parâmetros passados;
$0 → Armazena o nome do script executado.
Exemplo com variáveis especiais:
#!/bin/bash
echo “Os parâmetros passados são $*”
echo “A quantidade de parâmetros passados é $#”
echo “O nome do script é $0”
9
Shell Script I
Variável $?
A variável interrogação é conhecida por testar o valor de retorno de
qualquer comando quando mostrada após sua execução. Exemplos:
# ls /etc
# echo $?
# 4linux
# echo $?
Resultado é igual a “0” → Comando executado com sucesso!
Resultado diferente de “0” → Existiu algum problema na execução do
comando.
10
Shell Script I
Comando test
O comando test é usado para realizar testes de condicionais
(strings, matemáticas e em arquivos) em “Shell Script”.
● Exemplo com strings:
# test “curso” = “curso” ; echo $?
● Exemplo com variável:
# test -z $CURSO ; echo $?
● Exemplo com expressões matemáticas:
# test 7 -eq 7 ; echo $?
11
Shell Script I
Operadores matemáticos
num1 -eq num2 : num1 é igual a num2 (equal to)
num1 -ne num2 : num1 não é igual a num2 (not equal to)
num1 -gt num2 : num1 é maior que num2 (greater than)
num1 -ge num2 : num1 é maior ou igual a num2 (greater or
equal)
num1 -lt num2 : num1 é menor que num2 (less than)
num1 -le num2 : num1 é menor ou igual a num2 (less or equal)
12
Shell Script I
Operadores para arquivos
-e → O arquivo existe (exists);
-nt → O arquivo é mais novo que (newer than);
-ot → O arquivo é mais antigo que (older than);
-d → O diretório existe.
13
Shell Script I
If
Com o if é possível usar a operações lógicas, permitindo que o
script tome decisões.
Sintaxe:
If [ condição ]; then
comandos
else
comandos
fi
14
Shell Script I
Exemplo:
#!/bin/bash
echo "Digite o nome do usuário para consulta:"
read USUARIO
RESULTADO=$( getent passwd | grep $USUARIO)
test -z $RESULTADO
if [ $? -eq 0 ] ;then
echo "O usuário $USUARIO não existe!"
else
echo "O usuário existe"
fi
15
Shell Script I
Enviar e-mail por linha de comando com “nail”
Instalação
# aptitude install heirloom-mailx Na mesma linha
# wget
http://archive.ubuntu.com/ubuntu/pool/universe/h/heirloo
m-mailx/nail_12.4-1.1_all.deb
# dpkg -i nail_12.4-1.1_all.deb
16
Shell Script I
Exemplo de script de backup com e-mail
#!/bin/bash
## Definição de variáveis
TODAY=$(date +%d-%m-%Y)
EMAIL=”administrador@dexte.com.br”
## Comandos para o backup
cd /dexter/backup/
tar cjf backup-$TODAY.tar.bz2 /var
## Envio de e-mail com backup em anexo
echo “Backup efetuado” | nail -s “Backup” -a
backup-$TODAY.tar.bz2 $EMAIL
17
Shell Script I
Verificar e-mail e criar agendamentos
Comando mutt
$ mutt
Agendamentos nos diretórios /etc/cron.
[hourly|daily|weekly|monthly]:
/etc/cron.hourly → Scripts neste diretório serão executado toda hora;
/etc/cron.daily → Scripts neste diretório serão executado todos os dias;
/etc/cron.weekly → Scripts neste diretório serão executado toda semana;
/etc/cron.monthly → Scripts neste diretório serão executado todos os
meses.
18
Próximos Passos
Para que você tenha um melhor aproveitamento do curso,
participe das seguintes atividades disponíveis no Netclass:
➢ Executar as tarefas do Laboratório dexterlab-4 para treinar a
criação de scripts utilizando estrutura if com envio de email;
➢ Resolver o Desafio para desenvolver um script que envia
email, e postar o resultado no Fórum Temático - Entrega de
Desafios;
➢ Responder as questões do Teste de Conhecimento sobre o
conteúdo visto em aula.
Mãos à obra!
19