Page 1 of 1

bash stdout in Variable umleiten

Posted: 26. Apr 2011 9:51
by brum
Hallo Leute,

ich möchte eine stdout-Nachricht in eine Varable umleiten ohne den Umweg über eine Datei.

Ich möchte das nächste fsck-Datum auswerten ...

Code: Select all

dumpe2fs /dev/XYZ | grep Next\ check\ after|tr -s " "|cut -d" " -f4,5,8
... und es erscheint bei diesem Befehl z.B. diese Ausgabe:

Code: Select all

dumpe2fs 1.38 (30-Jun-2005)
Sat Jun 2011
Die oberste Zeile ist eine Ausgabe, welche ich nicht anders herauszufiltern weiß, als die erwünschte untere Ausgabe mit stdout zu selektieren... z.B 1>file.txt.
Besser wäre aber eine Lösung ohne eine Datei anzulegen, also die 2. Zeile in eine Variable zu schreiben. Geht das?

Viele grüße
brum

eine Lösung

Posted: 26. Apr 2011 10:06
by brum
Ich habe erstmal eine Lösung für das eingentliche Prblem, nehme ich tune2fs -l statt dumpe2fs, so wird keine zusätzlich meldung mit ausgegeben.

Trotzdem würde es mich interessieren, ob man stdout in eine Variable umleiten kann und mit welchen Signal die erste Zeile geschrieben wird, kenne nur stdout, stdin und stderr, aber mein Wissen ist wohl nicht aktuell :(

Gruß
brum

Posted: 26. Apr 2011 12:51
by Janka

Code: Select all

VAR=$(Pipeline)
Janka

ok

Posted: 26. Apr 2011 13:18
by brum
danke :)

Posted: 26. Apr 2011 21:13
by komsomolze
Noch einen drauf

Code: Select all

# date -d "$(dumpe2fs /dev/sdd6 2>&1 | egrep -i "next.check" | cut -d: -f2-)" +%s
1317710604
Das '2>&1', damit auch die Versionsausgabe des dumpe2fs von grep aussortiert werden kann,
Das 'cut' gibt das komplette Datum des geplanten Checks.
Dieses Datum wird 'date' übergeben und als UNIX-Sekunden ausgegeben.

;)

Posted: 27. Apr 2011 7:22
by brum
Danke,

alles was ich brauche in einer Zeile.

Auf welchen Kanal die Versionsausgabe kommt ist mir trotzdem nicht klar :?

Gruß
brum