Prof. Armando Luiz N. Delgado
6 de agosto de 2003
Crie scripts shell que implementem uma solução para os exercícios abaixo.
ATENÇÃO: Cada script deve ser executado como se fosse um comando normal do UNIX.
DICA: Use last(1), date(1) (opções -d e formato %s) e expressões aritméticas (seções Arithmetic Expansion e ARITHMETIC EVALUATION em bash(1)).
Inclua todo o código necessário para testar se o script recebe o argumento (um arquivo) na linha de comando e se o arquivo especificado existe, antes de executar a tarefa propriamente dita.
Uma vez funcionando o script, altere-o de forma que o número de linhas em branco a serem inseridas é definida pela variável de ambiente ESPACO.
Finalmente, altere o script de forma que quando o valor de ESPACO for 1 (um), o script remove todas as linhas em branco do arquivo especificado.
Solução 1.
Solução 2.
Solução 3.
Solução 4.
DICAS: O que siginifica o parâmetro especial $0? Pense em como tail(1), head(1) e basename(1) podem ser úteis.
Se o arquivo não estiver comprimido, o script emite uma mensagem de aviso, mas não efetua nenhuma ação sobre o dito arquivo.
Faça uma versão deste script usando if ... elif ... fi e outra usando case ... esac.
Supondo que o nome do script é conta, ele deve ser usado da seguinte forma:
conta 20 / 3
conta 34 x 6
O script deve também testar se há argumentos suficientes para executar a operação. Use case ... esac como parte da solução.
DICA: A forma básica de uso de mail(1) é mail [-s assunto] end_eletrônico <arquivo_com_mensagem:
mail delgado@inf.ufpr.br <mensagem.txt
mail -s "Aviso de Concurso" delgado@inf.ufpr.br <mensagem.txt
ASSUNTOS DAS PRÓXIMAS AULAS: