Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Jak przejść do drugiego z kolei wiersza w dialogu po wykonaniu komendy sh /bin/skrypt.sh . Jak w instalatorze Slackware.....
OUTPUT="temp.txt" >$OUTPUT; dialog --clear --title "Okno dialogowe Menu" --backtitle "BASH" --menu "Twój wybór:" 10 40 3 1 "Pozycja 1" 2 "Pozycja 2" 3 "Pozycja 3" 2> $OUTPUT BUTTON=$?; if [ "$BUTTON" == 0 ]; then echo "Wybrałeś Ok"; elif [ "BUTTON" == 1 ]; then echo "Wybrałeś Anuluj"; sh /bin/skrypt.sh else echo "Niczego nie wybrałeś"; fi echo $(<$OUTPUT)
Taki kod w dialogu....
Offline
Skopiowałem ten kod i wydaje się być ok... Dostaje w zależności od wybranej opcji z menu
Wybrałeś Ok 1|2|3
albo
Niczego nie wybrałeś
W czym jest problem?
Offline
Chodzi mi oto jak po wykoaniu np. INSTALL instalator wraca do menu głównego z zaznaczoną opcją CONFIGURE
https://gifyu.com/image/SZFkR
Ostatnio edytowany przez neo386neo (2024-04-20 19:43:08)
Offline
To można zrobić za pomocą pętli while:
RUN=1 while [ $RUN -eq 1 ]; do OUTPUT="temp.txt" >$OUTPUT; dialog --clear --title "Okno dialogowe Menu" --backtitle "BASH" --menu "Twój wybór:" 10 40 3 1 "Pozycja 1" 2 "Pozycja 2" 3 "Pozycja 3" 2> $OUTPUT BUTTON=$?; if [ "$BUTTON" == 0 ]; then echo "Wybrałeś Ok"; elif [ "BUTTON" == 1 ]; then echo "Wybrałeś Anuluj"; sh /bin/skrypt.sh else echo "Niczego nie wybrałeś"; fi echo $(<$OUTPUT) done
I póki gdzieś wewnątrz while'a nie zmienisz zmiennej RUN toskrtypt z pętli nie wyjdzie :)
A te podmenu obudowałbym w funkcje - będzie czytelniej.
Ostatnio edytowany przez thalcave (2024-04-20 19:56:18)
Offline
Chcę by po wykonaniu pozycji 1 przeszedł do menu głównego i po powrocie zaznaczyl opcję 2 itd. a potem od 2 do 3 ...
Ostatnio edytowany przez neo386neo (2024-04-21 07:59:53)
Offline
#!/bin/bash function submenu1() { dialog --clear --title "Submenu1" --backtitle "BASH" --menu "What color do you like?" 10 40 3 1 "Red" 2 "Green" 3 "Blue" 2> OUTPUT_FILE SUBMENU1_CHOICE=$(cat $OUTPUT_FILE) } RUN=1 OUTPUT_FILE="/tmp/file" while [ $RUN -eq 1 ]; do dialog --clear --title "Main menu" --backtitle "BASH" --menu "Menu" 10 40 3 1 "Run submenu1" 2 "Exit" 2> $OUTPUT_FILE BUTTON=$? if [ $BUTTON -eq 0 ]; then MENU_CHOICE=$(cat $OUTPUT_FILE) if [ $MENU_CHOICE -eq 1 ]; then submenu1 else RUN=0 [ -n "$SUBMENU1_CHOICE" ] && echo "You favourite color is $SUBMENU1_CHOICE" fi else RUN=0 fi done
Proszę zagnieżdżone menu. Trochę na skróty i nie działa jak użytkownik końcowy by oczekiwał ale pokazuje mechanizm działania.
Ostatnio edytowany przez thalcave (2024-04-21 14:09:11)
Offline
Fajno :-) , ale.... chciałbym by po wybraniu któregoś z kolorów, program przechodził pozycję dalej czyli w tym przypadku o jedną pozycję dalej (w tym przypadku EXIT) lub inne dodatkowe pozycje np. pozycję RUN SUBMENU 2.
Wiesz już o co mi chodzi ?
Ostatnio edytowany przez neo386neo (2024-04-21 16:43:08)
Offline
To w submenu1 możesz wywołać kolejjną funkcję.
Offline
Strony: 1