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 shell-script@yahoogrupos.com.br, "Julio C. Neves" <julio.ne...@...> 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 <karinklay...@...> > > > 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 > > karinklay...@... <karinklayton%40gmail.com> > > Tel: (91) 8121-5809 > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >