Universidade Federal do ABC
Curso de Tecnologia e Sistemas de
Informação
Disciplina: Software Livre
Prática: Shell Script
Exercícios
1- Crie um diretório denominado “aluno” e outro com o nome “script”. Dentro do
diretório /aluno/script construa um arquivo chamado [Link]. Com o gedit
edite o arquivo e insira o seguinte texto:
#Nome Telefone
Felipe 11-123456
Gustavo 11-654321
Carla 12-123478
Maria 13-796364
Construa um script denominado “agenda1” que permita consultar as
informações pelo nome armazenado no arquivo [Link]. Para executar,
não se esqueça de dar a permissão para que o arquivo possa ser executado.
mkdir aluno
mkdir script
touch [Link]
gedit [Link]
Inseridas as informações abaixo:
Nome Telefone
Felipe 11-123456
Gustavo 11-654321
Carla 12-123478
Maria 13-796364
touch [Link]
gedit [Link]
#!/bin/bash
#mostra os nomes armazenados no arquivo [Link]
#Lê os dados no arquivo /aluno/script/[Link]
awk ‘{print $1}’ /aluno/script/[Link]
sh [Link]
Nome
Felipe
Gustavo
Carla
Maria
2- Construa um script denominado “agenda2” que possibilite inserir
informações, como o nome e telefone de pessoas no arquivo [Link].
touch [Link]
gedit [Link]
#!/bin/bash
#Inserir nome e telefone no arquivo [Link]
echo Digite seu nome:
read nome >> [Link]
echo Qual é o número de seu telefone:
read telefone >> [Link]
echo $nome $telefone
echo “nome e telefone inseridos com sucesso!”
sh [Link]
Digite seu nome: Leandro
Qual é o número de seu telefone: 9045-7732
Nome e Telefone inseridos com sucesso!
3 - Crie um script denominado “tempo” que possibilite analisar se é dia, tarde,
ou noite; o script deve saudar o usuário adequadamente. Use a estrutura
condicional if.
touch [Link]
sudo gedit [Link]
#!/bin/bash
if [ “$(date +%l)” -ge 6 -a “$(date +%l)” -le 11 ]
then
echo “Bom dia $USER, hoje é $(date +%A)-feira, dia $(date +%d) de $(date
+%B) de $(date +%Y)”
elif [ “$(date +%l)” -ge 12 -a “$(date +%l)” -le 17 ]
then
echo “Boa tarde $USER, hoje é $(date +%A)-feira, dia $(date +%d) de $(date
+%B) de $(date +%Y)”
else [ “$(date +%l)” -le 18 -a “$(date +%l)” -le 23 ]
echo “Boa noite $USER, hoje é $(date +%A)-feira, dia $(date +%d) de $(date
+%B) de $(date +%Y)”
fi
sh [Link]
Boa tarde Leandro, hoje é segunda-feira, dia 15 de Dezembro de 2014
4 - Crie um script denominado “impar” que permita receber um número de 0 a 9
e determine se esse número é par ou ímpar. Nesse caso, trabalhe com o
comando case.
touch [Link]
gedit [Link]
#!/bin/bash
echo “Entre com um número de 0 e 9”
read Numero
case $Numero in
1) echo “1 é um número ímpar” ;;
2) echo “2 é um número par” ;;
3) echo “3 é um número ímpar” ;;
4) echo “4 é um número par” ;;
5) echo “5 é um número ímpar” ;;
6) echo “6 é um número par” ;;
7) echo “7 é um número ímpar” ;;
8) echo “8 é um número par” ;;
9) echo “9 é um número ímpar” ;;
esac
sh [Link]
Entre com um número entre 0 e 9
7
7 é um número ímpar
5 - Escreva um script denominado “diretório” que recebe um único parâmetro
que é o nome de um diretório. Se o número de argumentos não for igual a um,
exiba uma mensagem; se o argumento não for um diretório, exiba outra
mensagem. Sendo um diretório, exiba os arquivos do mais recentemente
modificado para o menos recente.
6 - Escreva um script denominado “backup” que cria um backup de todos os
arquivos do diretório corrente que possuam extensão .txt. A cópia backup deve
ser feita em um diretório de nome bkp (crie-o, caso não exista) e cada um dos
arquivos de cópia deve receber um [Link].
touch [Link]
gedit [Link]
#!/bin/bash
If [ ! -d ‘/aluno/script/backup’ ]; then
echo “O diretório ‘backup’ não existe!”
`mkdir –p /aluno/script/backup `
Iif [ $? -eq 1 ]; then
echo “Diretório criado com sucesso”
fi
else
echo “O diretório ‘backup’ já existe”
fi
sh [Link]
O diretório ‘backup’ já existe!