[gelöst] Skript mit dialog

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

[gelöst] Skript mit dialog

Beitrag von MSfree » 07.06.2020 11:13:18

Ich habe Debiandialog installiert, das ist ein einfaches Programm, mit dem sich im Textmodus Dialoge, Menüs, Abfrages etc. erstellen lassen.

Folgendes Skript funktioniert auch:

Code: Alles auswählen

#!/bin/bash
dialog --menu Testmenu 12 20 7 item1 off item2 off item3 off item4 off item5 on
Dialog liefert die Auswahl auf stdout zurück und man sollte den Wert auch folgendermassen abfangen können:

Code: Alles auswählen

#!/bin/bash
opt=`dialog --menu Testmenu 12 20 7 item1 off item2 off item3 off item4 off item5 on`
echo $opt
Ich sehe aber den Dialog nicht auf den Bildschirm. Was ist da los/falsch?
Zuletzt geändert von MSfree am 07.06.2020 12:25:43, insgesamt 2-mal geändert.

TomL

Re: Skript mit dialog

Beitrag von TomL » 07.06.2020 11:40:44

Die Gedankengänge dahinter erscheinen mir auch merkwürdig und ich kann auch nicht erklären, warum bei Verwendung stdout die ganze dialog-Ausgabe unterdrückt wird. Aber das wichtige ist, die Rückgabe der dialog-Auswahl erfolgt eben nicht über sdout, sondern über stderr. Diese Variante funktioniert:

Code: Alles auswählen

dialog --menu Testmenu 12 20 7 item1 off item2 off item3 off item4 off item5 on 2> /tmp/rc; cat /tmp/rc

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: Skript mit dialog

Beitrag von MSfree » 07.06.2020 11:48:11

Oh man, stdout war das richtige Stichwort :facepalm:

Code: Alles auswählen

#!/bin/bash
opt=`dialog --stdout --menu Testmenu 12 20 7 item1 off item2 off item3 off item4 off item5 on`
echo $opt
tut, was es soll.

Danke, manchmal sieht man die Bäume vor lauter Wald nicht.

Antworten