Exercícios Práticos de Shell Script no Linux
Exercícios e Scripts em Bash
1) Estruturas de decisão (if), estruturas de repetição (for, while), funções e argumentos, definições de variáveis e o escopo destas.
Exemplos Práticos de Scripts
2) Script de Registro de Log:
#!/bin/bash
# Gera arquivo chamado "log" com informações
# que estavam armazenadas em variáveis
DATA_HORA=`date`
echo $DATA_HORA
LOGADOS=`who`
echo $LOGADOS
echo $DATA_HORA $LOGADOS > log
exit3) Script de Verificação de Usuário:
#!/bin/sh
# Procura pelo usuário informado
echo "Informe o nome do usuário que deseja verificar:"
read USUARIO
grep $USUARIO /etc/passwd > /tmp/testaUsuario.txt
#sleep 2s
if [ -s "/tmp/testaUsuario.txt" ]; then
echo "Usuário encontrado"
else
echo "Usuário inexistente"
fi
rm /tmp/testaUsuario.txt4) Script com Menu e Funções:
menu() {
echo " Calculadora Básica "
echo " Operações apenas com Inteiros "
echo "|---------------------------------------------------|"
echo "| Escolha uma das operações abaixo: |"
echo "|---------------------------------------------------|"
echo "| 1) Status de utilização das partições do sistema |"
echo "| 2) Exibir relação de usuários logados |"
echo "| 3) Exibir data/hora |"
echo "| 4) Sair |"
echo "|---------------------------------------------------|"
echo "|---------------------------------------------------|"
read opcao
case $opcao in
1) "Status de utilização das partições do sistema" ;;
2) "Exibir relação de usuários logados" ;;
3) "Exibir data/hora" ;;
4) Sair ;;
*) echo "Opção Inexistente" ;
clear ;
menu ;;
esac
}
Status_de_utilizacao_das_particoes_do_sistema() {
clear
STATUS='df -h'
echo $STATUS
menu
}
Exibir_relacao_de_usuarios_logados() {
clear
LOGADOS=`who`
echo $LOGADOS
menu
}
Exibir_data_hora() {
clear
DATA_HORA=`date`
echo $DATA_HORA
menu
}
Sair() {
exit
}
fi5) Script de Ordenação Interativa com sort:
#!/bin/bash
# Utiliza o comando sort para ordenar
# palavras recebidas do usuário de forma interativa
while read p
do
if [ "$p" == "sair" ]; then
rm /tmp/ordenaPalavras.txt
exit
else
echo "$p" >> /tmp/ordenaPalavras.txt
fi
echo -e "\n\nA lista de palavras ficou:\n"
cat /tmp/ordenaPalavras.txt | sort
echo -en "\n\nPróxima palavra: "
doneQuestões de Fixação e Respostas
1.C) Interativa (usuário digitando) e não interativa (scripts)
2.B) Apenas as afirmações I, II e IV.
3.D) >$ ./questão1.sh /home/usuário /tmp/quest3 grep
Caminho: /home/usuário | Arquivo: /tmp/quest3 | Destino: grep
4.C) Parâmetro
5) Script de Teste de Login:
if who | grep "$1" >> /dev/null; then
echo "$1 está logado"
else
echo "$1 não está logado"
fi