Nowe posty

Autor Wątek: Dlaczego ten dialog nie chce działać?  (Przeczytany 1362 razy)

djmentos

  • Gość
Dlaczego ten dialog nie chce działać?
« dnia: 2014-08-13, 16:22:59 »
Witam.

Usiłuję zrobić formularz w skrypcie, przy użyciu programu dialog. Użytkownik ma mieć możliwość wybrania w nim urządzenia, na którym będzie chciał operować.

Zmienna DEV_STRING wygląda tak:
Cytuj
sda "WDC WD5000AUDX-6 465,8G" sdb "WDC WD5000BPKT-7 465,8G"
Wywołanie, które robię tak:
Cytuj
DEVICE=`dialog --stdout --backtitle "TITLE" --title "TITLE" --menu "latest news " 20 50 30 $DEV_STRING`
Wybór użytkownika (sda lub sdb) chce zapisać do zmiennej DEVICE.

Kiedy wywołam to ręcznie z basha, to dostaję efekt widoczny po prawej stronie, kiedy ze skryptu - po lewej stronie (czyli źle).


Czy ktoś jest w stanie wytłumaczyć mi dlaczego tak się dzieje i podpowiedzieć jak to poprawić? Bo męczę się z tym już którąś godzinę.

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Dlaczego ten dialog nie chce działać?
« Odpowiedź #1 dnia: 2014-08-13, 16:46:14 »
> Kiedy wywołam to ręcznie z basha, to dostaję efekt widoczny po prawej stronie

U mnie nigdy nie ma takiego efektu. Zawsze jest tak jak na screenie po lewej.

Użyj xargs:
DEV_STRING='sda "WDC WD5000AUDX-6 465,8G" sdb "WDC WD5000BPKT-7 465,8G"'
DEVICE=`echo "$DEV_STRING" | xargs dialog --stdout --backtitle "TITLE" --title "TITLE" --menu "latest news " 20 50 30`

djmentos

  • Gość
Dlaczego ten dialog nie chce działać?
« Odpowiedź #2 dnia: 2014-08-14, 10:56:07 »
Dzięki, to mi pomogło! Aczkolwiek nadal nie rozumiem czemu tak się dzieje.