Por que o comando claro não funciona com o nohup sleep?

0

Aqui estão dois exemplos de código. Ambos são nohup códigos em uma string bash. O primeiro faz o trabalho e o segundo não. Eu pergunto por quê.

sudo apt-get purge zip unzip
nohup bash -c " sleep 20s; apt-get install zip unzip; " & 

O comando acima é executado em segundo plano e instalado como software (eu o afirmei executando o stdin " zip ".

nohup bash -c " sleep 20s; clear; "

Este comando é executado em primeiro plano, mas não limpa o tty. Por que é que? O que eu poderia fazer para deixar claro a tela da sessão atual? Existe algum argumento / forma de execução / script que eu poderia executar junto com o comando, que pode ajudar com isso?

    
por JohnDoea 29.12.2016 / 23:34

1 resposta

2

O programa clear está escrevendo para a saída padrão , que é redirecionada pelo comando nohup . Então isso não tem efeito no terminal.

Você pode ver a saída (de clear ) em nohup.out .

Você pode fazer isso em vez disso:

nohup bash -c " sleep 20s; clear >/dev/tty; "

que informa ao shell para redirecionar a saída de clear para o dispositivo tty . Você pode usar o comando tty para identificar o terminal dispositivo que você está usando, por exemplo,

    nohup bash -c " sleep 20s; clear > $(tty); "

mas na maioria dos casos ambos funcionarão.

Você pode receber um aviso de nohup , que pode ser silenciado:

    nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null
    
por 29.12.2016 / 23:40

Tags