Nowe posty

Autor Wątek: Zmienna w Oknie dialogowym  (Przeczytany 3002 razy)

misiekmsq

  • Gość
Zmienna w Oknie dialogowym
« dnia: 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"

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2840
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Zmienna w Oknie dialogowym
« Odpowiedź #1 dnia: 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...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy