Um processo pode retornar ao primeiro plano após a conclusão? (AIX / ksh)

2

Eu tenho um loop while para contar até 5 e ecoar "Done" quando terminar. Quero poder executar o script em segundo plano com "&" e continuar a emitir comandos enquanto é executado.

Mas quando estiver pronto, quero que ele se torne o processo em primeiro plano antes de repetir "Concluído". Depois disso, eu esperaria que ele mostrasse uma nova linha de prompt de comando. Eu posso apenas ecoar "\ nDon", e eu entendo porque executá-lo em segundo plano apenas imprime a saída e não termina / inicia um novo prompt. Mas eu estou querendo saber se é possível basicamente mesclar os trabalhos antes de terminar, e se eu poderia aplicar isso em outro lugar, com controle de trabalho embutido em meus scripts.

Este não é um problema prático, apenas curioso.

    i=0

    while [ $i -lt 5 ]
    do
        let i+=1
        sleep 1
    done

    fg
    echo "Done"
    
por Matt Dexter 21.08.2015 / 05:17

1 resposta

2

Não - Os processos em execução não podem fazer esse tipo de coisa, porque são baseados no shell e no trabalho do shell para dizer qual processo está em primeiro plano / em segundo plano / suspenso.

Tente isso - remova o fg e execute o script de shell em segundo plano (ou seja, com um & no final) Quando terminar, a saída será emitida para o console. / p>     

por 21.08.2015 / 06:57

Tags