shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: liberar aplicação shell para outras opções


From: edmarssouza
Subject: Re: liberar aplicação shell para outras opções
Date: Tue, 20 Jan 2009 05:34:13 -0000
User-agent: eGroups-EW/0.82

E ai cara, blz?
Não sei se lhe entendi mais se você quer, voltar para um loop logo 
após ter executado uma opção, use o "while" para fazer o loop 
infinito e o "continue" para permite voltar ao "while". Vou 
implementar um exemplo para que você tenha idéia do script:

#!/bin/bash
# Essa linha faz o loop infinito, para sair desse loop use break ou 
exit
while :; do # se você quiser use: while true; do, dá na mesma
     clear
     echo "1 - Para imprime bom dia"
     echo "2 - Para imprime boa tarde"
     echo -e "3 - Para imprime boa noite\n"
     echo -e "5 - Para sair\n"
     read -p "Escolha uma das opções: " X

         case "$X" in
                  [1]) echo "Bom dia"; sleep 3; clear; continue ;;
                  [2]) echo "Boa tarde"; sleep 3; clear; continue ;;
                  [3]) echo "Boa noite"; sleep 3; clear; continue ;;
                  [5]) exit 1 ;;
                    *) echo "Opção invalida" ; sleep 2; clear ; 
continue ;;
         esac 
done

O "continue" faz você volta para o começo do loop atual. Tem tbm 
o "break" ele faz você sair do loop atual, pulando para o primeiro 
done que encontrar. Por exemplo, se tiver dois while ele irá voltar 
para o primeiro while e não para o segundo.

Umas dicas: Prefira usar função quando você for usar um mesmo código 
duas ou mais vezes. E use identação para que seu código fique mais 
legível por outras pessoas. São só dicas. Não level mal, por favor.

Depois posta ai para sabermos se deu tudo certo. Espero ter ajudado,
até mais.

Edmar de Souza Prado

--- Em address@hidden, "Julio C. Neves" 
<julio.neves@...> escreveu
>
> while true
> do
>     menu
>     if condição
>     then
>         break
>     fi
> done
> 
> É isso????
> -- 
> Abração,
> Julio
> *Cursos de Shell e Zenity nos finais de semana:
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988*
> 
> 2009/1/20 Karin Klayton Schiochet <karinklayton@...>
> 
> >   Senhores,
> >
> > Depois de montar um script simples para facilitar as manutenções 
em
> > clientes apareceu uma dúvida que não sei se é possível fazer já 
que o
> > scripts em shell seguem o padrão de execução em "lote" vamos dizer
> > assim.
> >
> > tenho um script que lista os servidores que preciso acessar 
remotamente
> > e de acordo com a opção ele chama outro shell passando os 
parâmetros
> > para acessar o servidor via ssh. Eu gostaria que após fazer esse
> > chamado, o shell principal retornasse ao menu principal e fosse 
possível
> > caso necessário chamar outras opções.
> >
> > A minha dúvida é se é possível retornar a execução do script sem 
ter que
> > terminar o sessão aberta com o novo shell para que ele possa 
retornar ao
> > menu.
> >
> > O script é basicamente este que está abaixo
> >
> > ############################################
> > #!/bin/bash
> > #
> > #-------------------- VARIAVEIS --------------------
> > #
> > #----------------- SERVERS XXXXXXXXX ----------------
> > IPSRV1=XXX.XXX.XXX.XXX
> > IPSRV2=XXX.XXX.XXX.XXX
> > NAMESRV1=XXXXXX
> > NAMESRV2=XXXXXX
> >
> > #---------------- SERVERS YYYYYYY---------------
> > SRVFW=YYY.YYY.YYY.YYY
> > NAMESRV1=YYYY
> > SRVPX=YYY.YYY.YYY.YYY
> > NAMEPX2=yyyyyyyy
> > SRV3=YYY.YYY.YYY.YYY
> > NAMESRV3=YYYYYY
> >
> > #------------------ SERVERS ZZZZZZZZZ -----------------
> > IPSRV1=ZZZ.ZZZ.ZZZ.ZZZ
> > NAMESRV1=ZZZZZZ
> >
> > # E assim vai
> > ........
> > ........
> > ........
> > ........
> > # Termina variáveis
> >
> > #----------------------- MENU ----------------------
> > menu()
> > {
> > clear
> > exit=9
> >
> > until [ "$X" == "$exit" ]; do
> >
> > echo "---------------------------------------------------"
> > echo "| |"
> > echo "| Gerenciador de conexões ssh - EMPRESA |"
> > echo "| `date --date "0 day ago" +%d/%m/%Y`
> > |"
> > echo "---------------------------------------------------"
> > echo
> > echo "1 - FIREWALL XXXXXXXXXX ($NAMESRV1)"
> > echo "2 - PROXY XXXXXXXXXX (NAMESRV2)"
> > echo "3 - FIREWALL YYYYYYYY ($NAMESRV1)"
> > echo "4 - FIREWALL ZZZZZZZZ ($NAMESRV1)"
> > echo
> > echo "9 - Sair"
> > echo
> > echo -e "Escolha uma das opções: \c"
> > read X
> > echo
> >
> > case "$X" in
> >
> > 1) echo "Acessando o FIREWALL da XXXXXXXXXX ($SRVFW)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh 
usuario@
> > $SRVFW -p porta'
> > ;;
> >
> > 2) echo "Acessando o PROXY da YYYYYY ($SRVPX)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh 
usuario@
> > $SRVPX -p porta'
> > ;;
> >
> > 3) echo "Acessando o FIREWALL da ZZZZZZZZ ($IPSRV1)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh 
usuario@
> > $IPSRV1 -p porta'
> > ;;
> >
> > 9) echo "FINALIZANDO O SCRIPT..."
> > sleep 1
> > exit 1
> > ;;
> >
> > *) echo "Opção desconhecida!!!"
> > sleep 2
> > clear;
> > ;;
> >
> > esac
> > done
> > }
> > menu
> > ############################################
> >
> > Estou usando CentOS com gnome por isso uso o gnome-terminal. 
Gostaria de
> > saber se é possível após escolher uma opção o script retorne para 
o menu
> > e eu possa fazer outras opções.
> >
> > Um grande abraço a todos e desde já agradeço a contribuição.
> >
> > --
> > Karin Klayton Schiochet
> > Administrador de Redes
> > karinklayton@... <karinklayton%40gmail.com>
> > Tel: (91) 8121-5809
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]