← Back to team overview

sslug-teknik team mailing list archive

Re: Hardcore (ba)sh spørgsmål.

 

On 14 Jul 2000, Jesper K. Pedersen wrote:

> Hej.
> 
> Her kommer lige et (ba)sh spørgsmål, som jeg ikke selv kan gennemskue....
> 
> hvis jeg ønkser stdout og stderr redirected ud i separate filer, så kan jeg
> gøre følgende:
> 
>   cmd 2> /tmp/stderr > /tmp/stdout
> 
> Hvis jeg ønsker at se output samtidig med at det ryger i en fil, så kan jeg
> gøre følgende:
>   cmd | tee /tmp/output
> 
> Men hvad gør jeg hvis jeg gerne vil se output mens programmet kører og
> samtidig gerne vil have splittet stdout og stderr ud i hver sin fil?

Følgende burde gøre dette. Der bruges process redirection, som du kan læse
om i man bash. Dette er _ikke_ sh. Virker kun under bash, AFAIK.

cmd 2> >(tee /tmp/stderr) > >(tee /tmp/stdout)

>() opretter en fifo, som kommandoen læser fra. Rækkefølgen 2> > er af en
eller anden årsag vigtig.

Bemærk at tee er buffered, og der kan være lidt fnidder med rækkefølgen af
linierne.

Jeg finder det iøvrigt mærkværdigt at der ikke er en | på stderr, ala 2|,
men det har nok alle mulige syntaks/parse årsager.

Mads

-- 
Mads Bondo Dydensborg.                               madsdyd@xxxxxxxxxxxx
'Open Systems' means no fences. And no fences means no use for Gates.
                                                       - Sun Microsystems



Follow ups

References