Re: Standard-Fehlerausgabe pipen

2006-09-09 Diskussionsfäden Jörg Sommer
Hallo Michelle,

Michelle Konzack <[EMAIL PROTECTED]> wrote:
> Am 2006-09-05 12:40:49, schrieb Martin Steigerwald:
>
>> Ich möchte die Ausgabe von
>> 
>> strace free 2>/tmp/foo ; less /tmp/foo
>
> strace free 1>/dev/tty 2>&1 |

Sicher, dass die Reihenfolge stimmt? Da steht: Biege stdout um und
verwende als stderr das, was du als stdout verwendest. Die Pipe sollte
also leer ausgehen.

Schöne Grüße, Jörg.
-- 
Der Hase läuft schneller als der Fuchs,
denn der Hase läuft um sein Leben.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-08 Diskussionsfäden Michelle Konzack
Am 2006-09-05 12:40:49, schrieb Martin Steigerwald:

> Ich möchte die Ausgabe von
> 
> strace free 2>/tmp/foo ; less /tmp/foo

strace free 1>/dev/tty 2>&1 |

D.h.:   1>/dev/tty  pipe STDOUT nach /dev/tty
2>&1pipe was übrigbleibt (STDERR) nach STDOUT

Thanks, Greetings and nice Day
Michelle Konzack
Systemadministrator
Tamay Dogan Network
Debian GNU/Linux Consultant


-- 
Linux-User #280138 with the Linux Counter, http://counter.li.org/
# Debian GNU/Linux Consultant #
Michelle Konzack   Apt. 917  ICQ #328449886
   50, rue de Soultz MSM LinuxMichi
0033/6/6192519367100 Strasbourg/France   IRC #Debian (irc.icq.com)


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Jörg Sommer
Hallo Martin,

Martin Steigerwald <[EMAIL PROTECTED]> wrote:
> Bei Umleitung werden für printf (von free verwenndet) offenbar größere 
> Buffer verwendet und der ganze Text mit einem write()-Aufruf ausgegeben. 
> Was ja auch Sinn macht,

Sinn kann man nicht machen!

> wenn es nicht auf eine zeilenweise Aufgabe ankommt. Wobei man den
> Unterschied wahrscheinlich nicht sehen kann.

Den Unterschied sollst du auch nicht sehen, sonst könnte man die
Optimierung nicht machen. Den Unterschied /könntest/ du aber spüren,
denn er werden statt einem System-Call (bei der Optimierung) vier ohne
die Optimierung gemacht.

Schöne Grüße, Jörg.
-- 
Mathematiker beim Kuchenessen (aus dem wahren Leben):
J: Du überlegst wohl, wie du das Stück optimal teilst?
K: Ja, ich wende gerade den Simplex-Algorithmus darauf an.
C: Schau mal, da hast du schon vier Ecken.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Jörg Sommer
Hallo Martin,

Martin Steigerwald <[EMAIL PROTECTED]> wrote:
> vielen Dank für die ganzen  Hinweise!
>
> [EMAIL PROTECTED]:~ -> strace free 2>test
>  total   used   free sharedbuffers cached
> Mem:775136 753772  21364  0  0 404264
> -/+ buffers/cache: 349508 425628
> Swap:   979924  74992 904932
>
>
> Die vier Writes möchte ich haben:
>
> [EMAIL PROTECTED]:~ -> tail -n8 test
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
> = 0xb7f7b000
> write(1, " total   used   "..., 74) = 74
> write(1, "Mem:775136 753772   "..., 74) = 74
> write(1, "-/+ buffers/cache: 349508   "..., 41) = 41
> write(1, "Swap:   979924  74992   "..., 41) = 41
> munmap(0xb7f7b000, 4096)= 0
> exit_group(0)   = ?
> Process 3719 detached

% strace -e write free 2>&1 >/dev/tty | less

Das versaut dir zwar den Bildschirm, aber mir fällt nichts besseres ein.
Du wirst wahrscheinlich Opfer einer Optimierung in der libc, die prüft,
ob die Standardausgabe eine Konsole ist und wenn nicht puffert es die
Ausgabe etwas mehr – erspart unter Umständen etwas, da nur ein
System‐Call write gemacht werden muss. Eine Ebene höher – im free – ist
das nämlich ein printf – siehe ltrace -S.

Nächtliche Grüße, Jörg.
-- 
Der Klügere gibt nach 
..deshalb regieren die Dummen die Welt!


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Wolf Wiegand
Hallo,

Martin Steigerwald wrote:

> Ich dachte ein tty ist ein Terminal und zwar eigentlich nur eines auf 
> einer "echten" Console, da die in KDE Konsole ja als pts gehandhabt 
> werden.  Eine Datei ist doch ebensowenig ein tty wie /dev/null oder gibts 
> da noch einen diffiziellen Unterschied?

Irgendwie interessiert mich das jetzt auch :-) So weit ich weiß (ich
lasse mich aber sehr gerne korrigieren), zählt ein pts auch als tty. Ein
kurzer Test:

[EMAIL PROTECTED]:/tmp $ cat test.c
#include 
#include 

int main(){
if (!isatty(STDERR_FILENO))
printf("stderr is not a tty\n");
else
printf("stderr is a tty\n");
printf("test\n");
}
[EMAIL PROTECTED]:/tmp $ ./test
stderr is a tty
test
[EMAIL PROTECTED]:/tmp $ ./test 2>/dev/null
stderr is not a tty
test

Bei diesem Minimalbeispiel kann man auch das gleiche wie bei
dem 'strace free' beobachten (auf den relevanten Teil gekürzt):

[EMAIL PROTECTED]:/tmp $ strace ./test
write(1, "stderr is a tty\n", 16stderr is a tty
)   = 16
write(1, "test\n", 5test
)   = 5
[EMAIL PROTECTED]:/tmp $ strace ./test 2>&1 >/dev/null
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfc8be14) = -1 ENOTTY (Inappropriate 
ioctl for device)
write(1, "stderr is a tty\ntest\n", 21) = 21

Hier wird's jetzt wackelig :-) Ich kann mir gut vorstellen, dass es in
der libc (die ja letztendlich die printf()-Aufrufe aus 'free' und dem
obigen Testprogramm in die write()-Aufrufe umsetzt) prüft, wohin
geschrieben werden soll. Wenn es sich um ein Terminal handelt ->
ungepuffert schreiben (= 2x write), ansonst gepuffert schreiben (= 1x
write). So wird die Anzahl der Syscalls reduziert, solange nicht jemand
gerade auf's Terminal guckt, der ja Ausgaben sofort sehen will.

So, gute Nacht,

Wolf
-- 
Ich halte mich für unersetzlich, andererseits sieht man ja, dass die Friedhöfe 
voll sind von Unersetzlichen... (Günther Jauch)


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Martin Steigerwald
Am Dienstag 05 September 2006 23:12 schrieb Robert Fischer:
> Martin Steigerwald wrote:
> > Ich glaub langsam, dass da strace einfach nicht mitspielt...
> > vielleicht ist der ioctl von strace und nicht von free... Könnte das
> > ein Bug sein? Oder einfach ein Nebeneffekt von strace? Meinungen?
>
> vielleicht hilft dir die strace Option "-o" weiter (siehe strace
> manpage)

Hallo Robert,

die pipts (uh ah) es aber nicht ;)

Ab in Heia mit mir, is besser so...
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Martin Steigerwald
Am Dienstag 05 September 2006 23:23 schrieb Wolf Wiegand:
> Hallo,
>
> Martin Steigerwald wrote:
> > Die vier Writes möchte ich haben:
>
> Warum eigentlich (so nebenbei)?

Hallo Wolf,

nur für ein cooles Bildschirmfoto für meinen nächsten Linux 
User-Artikel ;-). Sieht doch irgendwie doof aus, wenn es über den Umweg 
einer temporären Datei geht.

> > Da ist nur der erste Write und eben die Fehlermeldung zu dem
> > ioctl-Call, der aber im der obigen test-Datei nicht ausgeführt wird.
>
> Der ioctl schlägt fehl, als Folge wird ein anderer (nicht nur der
> erste) write-Befehl ausgeführt. Bei diesem write werden einmal 230
> Zeichen ausgegeben, beim ersten write 74+74+41+41 Zeichen.

Nee, ich glaub der andere Write-Befehl wird wg. der Ausgabe-Umleitung 
ausgeführt. Der fehlgeschlagene ioctl ist nur als Ablenkung gedacht ;)

> > Ich glaub langsam, dass da strace einfach nicht mitspielt...
> > vielleicht ist der ioctl von strace und nicht von free... Könnte das
> > ein Bug sein? Oder einfach ein Nebeneffekt von strace? Meinungen?
>
> Ich denke, das ist ein Nebeneffekt der Ausgabeumleitung, evtl. in
> Verbindung von strace.

strace mag /dev/null nicht ;)... wobei ich das noch nicht ganz kapier:

Ich dachte ein tty ist ein Terminal und zwar eigentlich nur eines auf 
einer "echten" Console, da die in KDE Konsole ja als pts gehandhabt 
werden.  Eine Datei ist doch ebensowenig ein tty wie /dev/null oder gibts 
da noch einen diffiziellen Unterschied?

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Martin Steigerwald
Am Dienstag 05 September 2006 23:06 schrieb Martin Steigerwald:
> Am Dienstag 05 September 2006 21:29 schrieb Christian Paul:
> > Am Dienstag, 5. September 2006 12:40 schrieb Martin Steigerwald:
> > > Hallo,
> > >
> > > ich möchte gerne mit der Bash (3.1-5)  die Standard-Fehler-Ausgabe
> > > eines Befehls pipen. Mein Ansatz ist:
> > >
> > > strace free 1>/dev/null | cat
> > >
> > > Doch das liefert nicht das gewünschte Ergebnis und sogar eine
> > > Fehlermeldung:
> >
> > [..]
> > Ich empfehle zur Lektüre:
> > http://www.thomashertweck.de/redir.html
> > hat mir zum Verständnis weitergeholfen.
>
> Hallo,
>
> vielen Dank für die ganzen  Hinweise!
>
> [EMAIL PROTECTED]:~ -> strace free 2>test
>  total   used   free sharedbuffers
> cached Mem:775136 753772  21364  0  0  
>   404264 -/+ buffers/cache: 349508 425628
> Swap:   979924  74992 904932
>
>
> Die vier Writes möchte ich haben:
>
> [EMAIL PROTECTED]:~ -> tail -n8 test
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0xb7f7b000
> write(1, " total   used   "..., 74) = 74
> write(1, "Mem:775136 753772   "..., 74) = 74
> write(1, "-/+ buffers/cache: 349508   "..., 41) = 41
> write(1, "Swap:   979924  74992   "..., 41) = 41
> munmap(0xb7f7b000, 4096)= 0
> exit_group(0)   = ?
> Process 3719 detached
>
>
> Genau das bekomme ich mit keiner dieser Varianten hin:
>
> strace free 2>&1 >/dev/null | tail -n8
> (strace free 1>/dev/null) 2>&1 | tail -n8
> strace free 2>&1 1>/dev/null | tail -n8
>
>
> Ich erhalte immer:
>
> [EMAIL PROTECTED]:~ -> strace free 2>&1 1>/dev/null | tail -n8
> read(3, "MemTotal:   775136 kB\nMemFre"..., 1023) = 598
> fstat64(1, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
> ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff83c74) = -1 ENOTTY
> (Inappropriate ioctl for device)
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0xb7eea000
> write(1, " total   used   "..., 230) = 230
> munmap(0xb7eea000, 4096)= 0
> exit_group(0)   = ?
> Process 6464 detached
>
> Da ist nur der erste Write und eben die Fehlermeldung zu dem
> ioctl-Call, der aber im der obigen test-Datei nicht ausgeführt wird.
>
>
> Tolle Kniffel-Aufgabe, oder? Komischerweise ging es einmal mit der
> letzten Variante, aber das konnte ich dann nicht reproduzieren...
>
> Ich glaub langsam, dass da strace einfach nicht mitspielt... vielleicht
> ist der ioctl von strace und nicht von free... Könnte das ein Bug sein?
> Oder einfach ein Nebeneffekt von strace? Meinungen?

Hallo nochmal,

also ich hab vermutet, dass es nicht geht, weil strace ein tty braucht und 
dies nicht bekommt, wenn man /dev/null verwendet. Das könnte es sein:

"strace free 1>test" geht ohne Fehler, während "strace free 1>/dev/null" 
den Fehler wirft.


Warum es dann nur noch ein write() ist, ist klar:

[EMAIL PROTECTED]:~ -> strace free 2>&1 | tail -n8
write(1, " total   used   "..., 230 total   
used   free sharedbuffers cached
Mem:775136 754948  20188  0  0 405904
-/+ buffers/cache: 349044 426092
Swap:   979924  74912 905012
) = 230
munmap(0xb7f2b000, 4096)= 0
exit_group(0)   = ?
Process 12573 detached


Bei Umleitung werden für printf (von free verwenndet) offenbar größere 
Buffer verwendet und der ganze Text mit einem write()-Aufruf ausgegeben. 
Was ja auch Sinn macht, wenn es nicht auf eine zeilenweise Aufgabe 
ankommt. Wobei man den Unterschied wahrscheinlich nicht sehen kann.

Na, wieder was gelernt ;).

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Wolf Wiegand
Hallo,

Martin Steigerwald wrote:

> Die vier Writes möchte ich haben:

Warum eigentlich (so nebenbei)?

> [EMAIL PROTECTED]:~ -> tail -n8 test
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
> = 0xb7f7b000
> write(1, " total   used   "..., 74) = 74
> write(1, "Mem:775136 753772   "..., 74) = 74
> write(1, "-/+ buffers/cache: 349508   "..., 41) = 41
> write(1, "Swap:   979924  74992   "..., 41) = 41
> munmap(0xb7f7b000, 4096)= 0
> exit_group(0)   = ?
> Process 3719 detached
> 
> [...] 
>
> Ich erhalte immer:
> 
> [EMAIL PROTECTED]:~ -> strace free 2>&1 1>/dev/null | tail -n8
> read(3, "MemTotal:   775136 kB\nMemFre"..., 1023) = 598
> fstat64(1, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
> ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff83c74) = -1 ENOTTY 
> (Inappropriate ioctl for device)
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
> = 0xb7eea000
> write(1, " total   used   "..., 230) = 230
> munmap(0xb7eea000, 4096)= 0
> exit_group(0)   = ?
> Process 6464 detached
> 
> Da ist nur der erste Write und eben die Fehlermeldung zu dem ioctl-Call, 
> der aber im der obigen test-Datei nicht ausgeführt wird. 

Der ioctl schlägt fehl, als Folge wird ein anderer (nicht nur der erste)
write-Befehl ausgeführt. Bei diesem write werden einmal 230 Zeichen
ausgegeben, beim ersten write 74+74+41+41 Zeichen.
 
> Ich glaub langsam, dass da strace einfach nicht mitspielt... vielleicht 
> ist der ioctl von strace und nicht von free... Könnte das ein Bug sein? 
> Oder einfach ein Nebeneffekt von strace? Meinungen?

Ich denke, das ist ein Nebeneffekt der Ausgabeumleitung, evtl. in
Verbindung von strace.

Wolf
-- 
Büroschimpfwort des Tages: Vorkoster - Mitarbeiter, der pünktlich zur 
Kantinenöffnung Mittagspause macht. (Henrik Karcher)


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Robert Fischer
Martin Steigerwald wrote:

> Ich glaub langsam, dass da strace einfach nicht mitspielt... vielleicht
> ist der ioctl von strace und nicht von free... Könnte das ein Bug sein?
> Oder einfach ein Nebeneffekt von strace? Meinungen?

vielleicht hilft dir die strace Option "-o" weiter (siehe strace manpage)

ciao,
Robert


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Martin Steigerwald
Am Dienstag 05 September 2006 21:29 schrieb Christian Paul:
> Am Dienstag, 5. September 2006 12:40 schrieb Martin Steigerwald:
> > Hallo,
> >
> > ich möchte gerne mit der Bash (3.1-5)  die Standard-Fehler-Ausgabe
> > eines Befehls pipen. Mein Ansatz ist:
> >
> > strace free 1>/dev/null | cat
> >
> > Doch das liefert nicht das gewünschte Ergebnis und sogar eine
> > Fehlermeldung:
>
> [..]
> Ich empfehle zur Lektüre:
> http://www.thomashertweck.de/redir.html
> hat mir zum Verständnis weitergeholfen.

Hallo,

vielen Dank für die ganzen  Hinweise!

[EMAIL PROTECTED]:~ -> strace free 2>test
 total   used   free sharedbuffers cached
Mem:775136 753772  21364  0  0 404264
-/+ buffers/cache: 349508 425628
Swap:   979924  74992 904932


Die vier Writes möchte ich haben:

[EMAIL PROTECTED]:~ -> tail -n8 test
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xb7f7b000
write(1, " total   used   "..., 74) = 74
write(1, "Mem:775136 753772   "..., 74) = 74
write(1, "-/+ buffers/cache: 349508   "..., 41) = 41
write(1, "Swap:   979924  74992   "..., 41) = 41
munmap(0xb7f7b000, 4096)= 0
exit_group(0)   = ?
Process 3719 detached


Genau das bekomme ich mit keiner dieser Varianten hin:

strace free 2>&1 >/dev/null | tail -n8
(strace free 1>/dev/null) 2>&1 | tail -n8
strace free 2>&1 1>/dev/null | tail -n8


Ich erhalte immer:

[EMAIL PROTECTED]:~ -> strace free 2>&1 1>/dev/null | tail -n8
read(3, "MemTotal:   775136 kB\nMemFre"..., 1023) = 598
fstat64(1, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff83c74) = -1 ENOTTY 
(Inappropriate ioctl for device)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xb7eea000
write(1, " total   used   "..., 230) = 230
munmap(0xb7eea000, 4096)= 0
exit_group(0)   = ?
Process 6464 detached

Da ist nur der erste Write und eben die Fehlermeldung zu dem ioctl-Call, 
der aber im der obigen test-Datei nicht ausgeführt wird. 


Tolle Kniffel-Aufgabe, oder? Komischerweise ging es einmal mit der letzten 
Variante, aber das konnte ich dann nicht reproduzieren...

Ich glaub langsam, dass da strace einfach nicht mitspielt... vielleicht 
ist der ioctl von strace und nicht von free... Könnte das ein Bug sein? 
Oder einfach ein Nebeneffekt von strace? Meinungen?

Denn so gehts:

[EMAIL PROTECTED]:~ -> cat ausgabe.sh
#!/bin/bash
echo "Dies ist eine Ausgabe auf stdout." >&1
echo "Dies ist eine Ausgabe auf stderr." >&2
[EMAIL PROTECTED]:~ -> ./ausgabe.sh 2>/dev/null
Dies ist eine Ausgabe auf stdout.
[EMAIL PROTECTED]:~ -> (./ausgabe.sh 1>/dev/null) 2>&1
Dies ist eine Ausgabe auf stderr.
[EMAIL PROTECTED]:~ -> ./ausgabe.sh 2>&1 1>/dev/null
Dies ist eine Ausgabe auf stderr.
[EMAIL PROTECTED]:~ -> ./ausgabe.sh 1>/dev/null 2>&1

Nur die letzte Variante geht nicht, was anhand der von Dir empfohlenen 
Lektüre verständlich ist.

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Christian Paul
Am Dienstag, 5. September 2006 12:40 schrieb Martin Steigerwald:
> Hallo,
>
> ich möchte gerne mit der Bash (3.1-5)  die Standard-Fehler-Ausgabe eines
> Befehls pipen. Mein Ansatz ist:
>
> strace free 1>/dev/null | cat
>
> Doch das liefert nicht das gewünschte Ergebnis und sogar eine
> Fehlermeldung:
[..]
Ich empfehle zur Lektüre:
http://www.thomashertweck.de/redir.html
hat mir zum Verständnis weitergeholfen.

Gruß
Christian Paul

-- 
Jedesmal aber, wenn ein Staatsoberhaupt von Gott spricht, [...] kann man
sicher sein, daß er sich vorbereitet, seine Volksherde von neuem zu
scheren. (Michail Bakunin)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Pierre Gillmann
Moin,

> Wie sag ich der bash, dass sie den Dateideskriptor 2 (stderr) statt den 
> Dateideskriptor 1 (stdout) pipen soll?

(strace free 1>/dev/null) 2>&1

Wenn du noch stdout loswerden willst, willst du stderr und stdout auf
stdout haben genügt:

strace free 1 2>&1

Zum nachlesen: selflinux unter Shellprogrammierung

cheers
  Pierre



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Wolf Wiegand
Hallo,

Martin Steigerwald wrote:

> ich möchte gerne mit der Bash (3.1-5)  die Standard-Fehler-Ausgabe eines 
> Befehls pipen. Mein Ansatz ist:

So?

strace ls 2>&1 >/dev/null | less

hth, Wolf
-- 
KDE schafft es erfolgreich, alle Fehler der Benutzeroberfläche von Windows XP 
noch spektakulärer nachzuahmen sowie vorher undenkbare Fehler neu zu 
implementieren.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Standard-Fehlerausgabe pipen

2006-09-05 Diskussionsfäden Martin Wildgruber
Martin Steigerwald wrote:
> Hallo,
>
> ich möchte gerne mit der Bash (3.1-5)  die Standard-Fehler-Ausgabe eines 
> Befehls pipen. Mein Ansatz ist:
>
> strace free 1>/dev/null | cat
>
> Doch das liefert nicht das gewünschte Ergebnis und sogar eine 
> Fehlermeldung:
>
> ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbffc6444) = -1 ENOTTY 
> (Inappropriate ioctl for device)
>
> Selbst mit 
>
> strace free 1>/tmp/foo
>
> scheint mir die Ausgabe nicht vollständig zu sein.
>
> Ich möchte die Ausgabe von
>
> strace free 2>/tmp/foo ; less /tmp/foo
>
> jedoch ohne eine temporäre Datei anzulegen. 
>
> Wie sag ich der bash, dass sie den Dateideskriptor 2 (stderr) statt den 
> Dateideskriptor 1 (stdout) pipen soll?
>
> Grüße,
>   
Hallo

Ich glaube so müsste es gehen...

#!/bin/bash
tty 2 > /pfad/zur/datei


MfG
Martin


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)