É possível criar redirecionamento fixo de stdout / stderr

6

Considere esse código:

echo hello >> log.txt
echo world >> log.txt

Eu executo o comando com redirecionamento stdout. É possível criar redirecionamento fixo? Algo parecido com isto:

redir stdout log.txt
echo hello
echo world
stop-redir

Isso seria equivalente ao código da primeira peça.

O que eu realmente preciso - fazer um redirecionamento tão pegajoso para stdout e stderr (ao mesmo tempo), executar alguns comandos, parar o redirecionamento e ler o arquivo de log.

    
por greenoldman 21.08.2013 / 12:39

1 resposta

9
exec 3>&1 4>&2 >log.txt 2>&1
echo hello
echo world
exec 1>&3 2>&4
less log.txt

, ou seja: descritores de arquivos 3 e 4 cópias do atual 1 (stdout) e 2 (stderr), redirecionam 1 para log.txt e 2 para o mesmo que 1; então execute comandos; em seguida, restaure stdout e stderr dos valores salvos nos descritores de arquivos 3 e 4.

    
por 21.08.2013 / 12:56