#!/bin/bash
# Dialog przez jakiegoś kretyna wysyła "grafikę" na STDOUT a wynik na STDERR
# tym samym uniemożliwiając złapanie wyniku w `` albo $()
# Robimy nowy strumień nr 3 i zapinamy go pod nr 1 (STDOUT)
exec 3>&1
# Teraz pokazujemy dialog wysyłając wyniki na STDOUT (zapis 2>&1)
# a "grafikę" na kopię STDOUT w strumieniu 3 (zapis 1>&3). Teraz
# $() złapie prawidłowo wynik dialogu do zmiennej
DANE=$(dialog --title "xxx" \\
--backtitle "xxx" \\
--inputbox "xxx" 8 30 \\
2>&1 1>&3)
# Usuwamy niepotrzebny już strumień nr 3
exec 3>&-
# Dowód, że działa
echo "Wartosc to '$DANE'"
Prosz...