+ Responder ao Tópico



  1. #1

    Padrão Dúvida estupida 2

    Colegas, sou utilizador de linux ha varios anos, porem como vcs sabem ng nasce ensinado e sabe-se de tudo um pouco mas nunca tudo de algo..
    a duvida é realmente estupida, mas eu n consigo resolver isto, que pareçe basico..
    é o seguinte, tenho 2 scripts:

    1º script --> executa.sh
    2º script --> corre.sh

    (ambos sao nomes fictícios =pP)

    agora é assim, o 1º script (executa.sh) vai correndo até que xega uma altura que ele "chama" o 2º script (./corre.sh)

    então o 2º script corre numa boa... até xegar ao fim, té agora sem problemas
    MAS!
    quando o 2º script termina, o 1º script continua a correr, partindo do local de onde chamou o 2º script, até ao fim...

    a minha pergunta é, como faço para que quando o 2º script correr, o 1º script interrompa a sua execução?

    Um abraço[]

  2. #2

    Padrão Re: Dúvida estupida 2

    bash eh sequencial, ele nao executa a proxima instrucao ateh que a anterior termine (a nao ser que vc force isso). por exemplo

    script1:
    Código :
    #!/bin/bash
    exec < ARQUIVO
    while read line
    do
     blablabla
     chamando script2
     echo "script 2 terminou"
    done

    ele soh ira executar o echo quando ele terminar de executar o script2, a num ser que o script 2 contenha codigo que é executado em background, ai ele apenas chama o script2 e continua executando o resto, enqto o 2 esta sendo executado

    é mais facil vc falar oq precisa

  3. #3

    Padrão Re: Dúvida estupida 2

    ora bem é o seguinte, eu estou a desenvolver uma distro mais um colega aí do brasil (mais tarde eu vou postar aqui os detalhes) e sou eu quem está a fazer o instalador, o instalador é feito em shell script + dialog para ficar facil de entender..
    um belo exemplo onde eu tenho este problema, é quando na hora de criar as partiçoes, tem um script que se chama "partition_setup"
    kndo vc acaba de criar as partiçoes, o script verifica se vc tem pelo menos uma swap e pelo menos uma /
    tudo bem até agora.
    se vc n tiver. ele chama um script responsavel por exebir um erro na tela
    ./erro "bah bha bha"
    e volta de novo a executar o "partition_setup" (note-se que já temos um "partition_setup" a correr anteriormente )
    e aí vc mete tudo correctinho e quando tá para avançar, o partition_setup anterior volta a apareçer...n dá jeito nao..

    Um baraço&#91;]

  4. #4

    Padrão Re: Dúvida estupida 2

    Bom eu não entendo muito de comandos mas vê se minha logica teria como fazer:
    Citação Postado originalmente por The-shadow

    e volta de novo a executar o "partition_setup" (note-se que já temos um "partition_setup" a correr anteriormente )
    se no lugar dele voltar a executar vc jogasse um comando para ele voltar a tela do partition_setup que já esta em execução.

    então vc pode ter duas saidas uma que era fechar o partition_setup que já estava aberto e abrir um novo, que era a que vc perguntou

    ou

    voltar a tela do que ja estava aberta.

    desculpa se viajem d+, mas é que as vezes vc sabe muitas coisas mas da um branco em uma besteira sei bem como é isso já aconteceu comigo, agora o comando pra fazer isso eu não sei só tentei seguir uma logica pra ver se dava certo t+.

  5. #5

    Padrão Re: Dúvida estupida 2

    ora aí está...
    isso era uma boa ideia... mas como faço eu pra ele voltar ao que ja estava aberto?

  6. #6

    Padrão Re: Dúvida estupida 2

    já resolvi o meu problema... :-D
    abandonei a resma de scripts individuais e troquei tudo por funcoes, cada função faz o mesmo que cada script fazia...
    aí é so chamar a funcção..

  7. #7