← Back to team overview

sslug-teknik team mailing list archive

Re: Usædvanlig(?) omdirigering af uddata

 

sparre@xxxxxx (Jacob Sparre Andersen) writes:

> Jørgen Heesche skrev:
>
>> OK, du kunne gøre sådan:
>> shell-script 1> std.out 2> std.err
>> Og så åbne en anden x-terminal og følge med ved hjælp af tail:
>> tail -f std.err
>
> Det er ikke en eksplicit del af Henriks specifikation, men sådan som jeg
> har forstået den, så ville han ikke bare have »stdout« og »stderr«
> samlet i samme fil, men helst også i den rækkefølge tingene blev
> skreveet i.

Det er korrekt, men jeg er i tvivl om i hvor høj grad det krav kan
opfyldes.

Jeg har følgende lille perl-program:
#! /usr/bin/perl

use warnings;
use strict;

print STDERR "err1\n";
print STDOUT "ud1\n";
print STDERR "err2\n";
print STDOUT "ud2\n";

Når jeg kører det normalt kommer de fire tekster på skærmen i den
rækkefølge de står i koden. Det gør de også hvis jeg tilføjer '2>&1' til
kommandolinien, men hvis jeg tilføjer '2>&1 | tee fil' kommer de to
err-tekster først både på skærmen og i filen. Eftersom tee får det hele
på stdin kan den ikke være skyld i omordningen (jeg antager at jeg ikke
har haft besøg af en cracker der har udskiftet min tee med en version
der sorterer uddata), altså kan vi konstatere at '2>&1'-konstruktionen
ikke er stabil?

.Henrik

-- 
Ja selvfølgelig. I forventer vel ikke jeg skal give præcise utvetydige
oplysninger, vel? Det er det man har Makholm til.
						       -- Hanne Munkholm


Follow ups

References