Colocar uma case dentro de outra
Pessoal boa noite
comecei um uma empreitada para aprender shellscript e dialog,e todo material que eu tenho encontrado na internet,principalmente os do aurélio,tem me satisfeito muito,no entanto surgiu uma dúvida...
Estou criando em dialog um scriot de gerenciamento basico do sistema,no qual quero que qq usuário,digo,qq MESMO!(requisito minimo:saber ler ,escrever e falar),possa administrar as funç~oes vitais do servidor caso eu naun possa acessá-lo remotamente(mais especificamente,caso uma dor de barriga me impeça de ir trabalhar ou me impeça de chegar perto do computador..hehe)Tudo que eu fiz até o momento funcionou,mas acho que estou fazendo errado,pois em determinado momento ,eu coloco uma case dentro de outra...vajem só..
Código :
#!/bin/bash
###tela de boas vindas
##parametro que especifica que o script deve rodar ignorando sempre as solicitacoes de canecalemtento.a naun ser pela tecla esc
dialog --title 'Bem - Vindo' --msgbox 'Bem-vindo ao Gerenciamento do Sistema' 8 40
##Menu Principal
##nesta opacao ele pede para escolher a tarefa incial do prgram,que pode ser monitrar serviços,ou gerencia-los..
opcao=$( dialog --stdout --menu 'Escolha Uma Tarefa:' 0 0 0 1 Monitorar 2 Gerenciar )
[ $? -ne 0 ] && echo'saindo'&& break ##caso o usuario aperte ESC,ele sai do programa
#caso a opcao seja monitorar,lhe sera perguntadoqual o serviço a ser monitorado
if test "$opcao" -eq 1 ;then \
monitorar=$( dialog --stdout --title 'O que voce que monitorar?' --menu 'Selecione uma categoria:' 0 0 0 \ #titulo e subtitulo
1 'Monitorar Logs' \ #monitora logs
2 'Monitoriar Carga de Cpu e Memoria' \ #achu que vc jah adinvinhou o resto né ? :-)
3 'quero ver todos os processos em andamento' \
4 'Quero ver o espaço utilizado em disco' )
[ $? -ne 0 ] && echo 'saindo...'&& break
##Dentro desta case,pensei que poderia criar uma dentro de outra...aki começa #a duvida..
case "$monitorar" in
1) log=$(dialog --stdout --title 'Escolha o Log' --menu 'Selecione o log desejado para eu te mostrar' 0 0 0 \
1 'Email' \
2 'Proxy' \
3 'SysLog' \
4 'Daemon' \
5 'Mensagens do sistema' \
6 'Mensagens que foram postadas durante a inicializacao do sistema' \
7 'Tentativas de autenticacao por ssh' \
8 '' )
case "$logs" in
1) tail -f /var/log/mail.log > tmail &
dialog \
--title 'Monitorando log do email...'\
--tailbox tmail \ ;;
2) echo 'em construcao' ;;
3) echo 'em construcao' ;;
4) echo 'em construcao' ;;
5) echo 'em construcao' ;;
6) echo 'em construcao' ;;
7) echo 'em construcao' ;;
8) echo 'em construcao' ;;
esac
;;
#################################################################################################################
2) /usr/bin/top ;;
3) ps -aux|less ;;
4) /bin/df -h ;;
esac ;else echo 'bobao' ;fi
Resumo:Funciona! Mas esse é o certo mesmo em teoricamente falando?
Sei que existem outros sistemas legais,mas eu preciso treinar shellscript e lógica...
O que vc acham? é melhor programa as telas como arquivos em separado ou um unico arquivo com todas as funções?
ABs e feliz 2007