Como o GnuPG retorna para o console enquanto stdout e stderr são redirecionados para / dev / null

1

Exemplo:

bash$ gpg --batch --edit-key alice quit >/dev/null 2>&1
Secret key is available.

pub  2048R/9F07612A  created: 2017-06-20  expires: never       usage: SCEA
                     trust: ultimate      validity: ultimate
sub  2048R/23B3A24B  created: 2017-06-20  expires: never       usage: SEA 
[ultimate] (1). alice (alice's key) <[email protected]>

Eu sei que usar --batch fará o trabalho.

Mas a minha pergunta é mais "como é que o GnuPG consegue esta ' saída mesmo assim ' recurso" ?

    
por frntn 21.06.2017 / 00:04

1 resposta

3

Provavelmente, escrevendo para /dev/tty ou equivalente, é isso que o ssh faz.

$ hi() { echo hello > /dev/tty; }
$ hi &>/dev/null 
hello

No Linux, pelo menos, abrir /dev/tty abre o terminal de controle do processo .

    
por 21.06.2017 / 00:41