Como desativo o redirecionamento depois que eu o ativo? [duplicado]

3

Encontrei uma ótima solução em Redirecionar o stderr de todos os comandos subseqüentes usando exec .

Eu usei o exemplo:

exec > >(tee $somelog) 2>&1

... e conseguiu tudo para tee great. Agora, como faço para desligar novamente?

    
por Robert Roberts 31.01.2016 / 01:37

1 resposta

2

A melhor solução se você planeja com antecedência é, provavelmente, salvar os descritores primeiro ou fazer seus redirecionamentos em um escopo subsidiário, como em a questão ligada nos comentários .

Se você não fez isso, você pode restaurar a gravação diretamente no terminal com:

exec > $(tty)

desde que você não tenha redirecionado a entrada padrão também.

Se você tiver redirecionado a entrada padrão, você pode usar:

exec > /dev/tty

, que também é um pouco mais rápido.

Esses restauram a saída padrão para o terminal. Para redefinir o erro padrão especificamente, use:

exec 2> ...

para qualquer opção que você escolher acima.

Se você está apenas preso e quer sair disso, note que simplesmente sair e reiniciar o shell irá levá-lo de volta ao normal também.

    
por 31.01.2016 / 02:18