Conector interativo em segundo plano dentro de outro script de shell

0

Eu tenho alguns problemas ao tentar executar uma sessão sh interativa dentro de um script de shell. O processo sh interior usa toda a CPU e nunca termina.

Para reproduzir o problema, basta criar um arquivo chamado "script.sh" contendo algo assim:

sleep 10 | sh -i | sleep 10 &

e execute-o usando:

sh script.sh

os comandos sleep são apenas espaços reservados, eu tenho outros comandos inserindo a entrada sh -i e processando sua saída. Eu sei que esta é uma configuração muito estranha, mas seria melhor se eu pudesse usar um shell interativo e, neste momento, estou muito curioso e quero entender o que está acontecendo.

    
por Steven 15.12.2014 / 20:21

1 resposta

1

Sua casca interna não é interativa; remova o sinalizador -i e ele deve parar de enlouquecer.

Veja O que as shells interativas devem fazer no processo órfão grupos? para uma explicação do que está acontecendo sob a capa.

    
por 15.12.2014 / 22:16