Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: misiekmsq w 2010-03-17, 21:47:54

Tytuł: Zmienna w Oknie dialogowym
Wiadomość wysłana przez: misiekmsq w 2010-03-17, 21:47:54
Jak zdefiniować zmienną dla okna dialogowego tak, żeby informacje np. z Infoboxa zapisywało do zmiennej ?

dialog --title "xxx" \\

--backtitle "xxx" \\

--inputbox "xxx" 8 30 \\

chce, żeby wartość podaną ptrzez użytkownika zapisywało do zmiennej "okno1"
Tytuł: Zmienna w Oknie dialogowym
Wiadomość wysłana przez: Paweł Kraszewski w 2010-03-18, 12:37:48
#!/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...