Por que o redirecionamento do shell falhou?

2

O comando causando a falha,

gpc xxx.pas > error.txt

Porque eu quero enviar a mensagem de erro para o stackflow.com, mas acontece que não há nada no error.txt, além disso, o gpc ainda chorou para o stdout e imprime a mensagem de erro na tela?

Então, por que o redirecionamento de shell falharia?

obrigado.

    
por Jichao 03.11.2009 / 03:13

1 resposta

5

STDERR (erro padrão) em sistemas UNIX e UNIX é redirecionado usando 2> em vez de uma única divisa ( > ).

exemplo:

gpc xxx.pas 2> error.txt

Isso permitirá que a saída padrão (STDOUT) seja impressa no terminal como normal, mas envie todas as mensagens de erro para o arquivo, error.txt .

Se você deseja coletar STDOUT e STDERR no mesmo arquivo, use 2>&1 : isso diz ao shell para copiar STDERR ( 2 ) para STDOUT ( 1 ). Agora redirecionando STDOUT obtém os dois fluxos:

gpc xxx.pas 2>&1 > stdout-and-stderr.txt
    
por 03.11.2009 / 03:21

Tags