Markus Meyer <[EMAIL PROTECTED]> wrote:

> On [Fri, Aug 19 15:08], Frank Küster wrote:
>>Demnach sollte es doch mit foo=`dialog ... 2>&1` funktionieren;
>>jedenfalls aber sollte eine Dialogbox gezeigt werden.  Im Gegenteil, die
>>manpage rät sogar von --stdout ab:
>
> Ok. Habe das Kleingedruckte nicht gelesen. Da muß jetzt auch zugeben,
> daß das verwirrend ist.
>
>>und in der Tat kriege ich mit --stdout in meinem sid-chroot eine
>>Fehlermeldung:
>>
>>$ foo=`dialog --stdout --nocancel --inputbox "Benutzername" 8 40 2>&1`
>>$ echo $foo
>>cannot open tty-output
>
> Hmm das hier
>
> --------------------
> #!/bin/bash
> NAME="$(dialog --nocancel --stdout --inputbox "Benutzername" 8 40 2>&1)"
>
> echo $NAME
> --------------------
>
> klappt ohne Probleme. Auch mit Backticks :)
> Ists vielleciht etwas Anderes bei dir, was da zwischenfunkt?

Ja klar, das ist halt ein chroot, wo das mit /dev/tty anders ausschaut
als auf dem Hauptsystem.  Das sollte nur illustrieren, dass es keine
wirklich keine gute Idee ist, generell --stdout zu verwenden.

Die eigentliche Frage ist doch, warum 

foo=`dialog --nocancel --inputbox "Benutzername" 8 40 2>&1`

auf einem (zumindest auf meinem) ganz normalen System keine Dialogbox
aufblendet (und foo auf "" setzt), während

dialog --nocancel --inputbox "Benutzername" 8 40 2>&1

oder

dialog --nocancel --inputbox "Benutzername" 8 40 2>texmpfile

ein Fenster auftut und hinterher etwas in der Datei steht.  Kriegt das
mit `` aufgerufene Kommando kein stdout?

Gruß, Frank

-- 
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer

Antwort per Email an