Exercícios Práticos de Shell Script no Linux

Computação3,32 KB

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
exit

3) 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.txt

4) 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
}
fi

5) 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: "
done

Questõ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

Baixar

PDF Word HTML