Strona 1 z 1

[SOLVED] [bash+zenity] wielokrotne potwierdzenie

: 06 lis 2010, 13:41
autor: mattnick

Kod: Zaznacz cały

zenity --question --text="Enable Calendar widget?"
if [ $? = 0 ] ; then 
zenity --question --text="Set monday as first day in the week in calendar?"; 
if [ $? = 0 ] ; then 
CAL=" --calendar -m"
else CAL=" --calendar"
fi
co pochrzaniłem i czemu to nie działa ?

Mógłby ktoś coś mi doradzić ?

Wytłumaczę o co chodzi bo z kodu może to nie wynika.

Wyskakuje okno z pytaniem. Jesli potwierdzamy to wyskakuje kolejne z następnym. Jeśli w tym następnym potwierdzimy to CAL= --calendar -m a jeśli niepotwierdzimy to samo --calendar... przydałoby się jeszcze w przypaku anuluj w piewszym oknie, żeby drugie się nie pojawiało.

Odp: [bash+zenity] wielokrotne potwierdzenie

: 06 lis 2010, 15:54
autor: borzole
brakuje na końcu jednego fi gdybyś robił wcięcia w kodzie to byś to od razu zauważył

[EDIT]
można to zrobić w jednym menu

Kod: Zaznacz cały

#!/bin/bash
get_calendar(){
	zenity --text "<i><span color='red'>Enable</span> <b>Calendar</b> widget</i>?" \
		--list --radiolist \
		--width 250 \
		--height 100 \
		--column '' --column '' --column '' \
		TRUE  " --calendar -m" "Set monday as first day" \
		FALSE " --calendar"    "Set ?????? as first day" \
		--print-column 2 --hide-column 2 --hide-header
}

CAL="$(get_calendar)"
[ ${#CAL} != 0 ] && echo zenity $CAL || echo bez kalendarza
a tak na marginesie, to w mojej wersji zenity nie ma opcji -m dla kalendarza

Odp: [bash+zenity] wielokrotne potwierdzenie

: 06 lis 2010, 20:32
autor: empitt
@matnick, popełniłeś proste błędy, które jednym okiem widać:

Kod: Zaznacz cały

#!/bin/bash
zenity --question --text="Enable Calendar widget?"
if [ $? = 0 ] ; then 
    zenity --question --text="Set monday as first day in the week in calendar?"
fi
if [ $? = 0 ] ; then 
    zenity --calendar --year=2010 --month=11 --day=06
else
    zenity --calendar
fi
Tak powinien mniej więcej wyglądać poprawnie Twój kod. @borzole, wspomniał już wcześniej gdzie popełniłeś błedy, więc nie będę powtarzać się. Proponuję abyś poczytał o pisaniu skryptów w bashu oraz o zenity, bo bez tego ani rusz (gdybyś uważnie czytał kurs, to byś wiedział gdzie błąd leży).

Odp: [bash+zenity] wielokrotne potwierdzenie

: 06 lis 2010, 21:30
autor: mattnick
dziękuję serdecznie za pomoc chociaż nie jest to do końca to o co mi chodziło. Myślę jednak, że coś mi się z tego przyda. Nie pisałem nigdzie i nigdzie to z kodu nie wynika, że chciałem kalendarz z zenity. Zenity potrzebne mi jest jedynie jako GUI. Które po odpowiednich tak/nie da mi $CAL które będzie albo --calendar -m albo samym --calendar. Ponieważ w skrypcie, który piszę na końcu jest linijka, która wydaje polecenia dla innego programu konfigurując go jednocześnie. Wygląda to mw tak:

Kod: Zaznacz cały

konfigurator programu $CAL$TIME$DATE
i właśnie tam mi jest potrzebne to $CAL jako --calendar lub --calendar -m

O bashu i zenity trochę poczytałem. Nie chcę się tłumaczyć bo nie wszystko jeszcze dokładnie rozumiem ale staram się jak mogę. Jeżeli jednak któryś z Was, po zrozumieniu tego o co rzeczywiście mi chodzi, miałby ochotę napisać łoaptologicznie jak kod miałby wyglądać byłbym wdzięczny, żeby nie powiedzieć bardzo wdzięczny. Pozdrawiam i dziękuję za pomoc i zrozumienie.

Gratuluję wiedzy....:x

Z problemem poradziłem sobie sam... Kod zostawiam dla potomnych

Kod: Zaznacz cały

if zenity --question --text="Enable Calendar widget?"; then
CAL=$(zenity --list \
    --title="Welcome to Conky-colors configuration script" \
    --text="Calendar options" \
    --radiolist \
    --column="" --column="Option" \
    TRUE "Default" \ FALSE "Set monday as first day in the week"); 
case $CAL in
"Default") CAL=' --calendar' ;;
"Set monday as first day in the week") CAL=' --calendar -m' ;;
esac
fi