Já que todos não sabem se entenderam o que você quer, eu acho que 
entendi outra coisa...

Para executar um outro script sem interromper o atual, o outro deve 
rodar "em background", para isto basta colocar um "&" (sem as aspas) no 
final da linha. O outro script começa a rodar e o atual continua 
imediatamente na linha seguinte.

Alain

Karin Klayton Schiochet escreveu:
> 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.
> 

Responder a