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


prawie jak admin



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


prawie jak admin



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)
doneI 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


prawie jak admin



#!/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
doneProszę 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


prawie jak admin



To w submenu1 możesz wywołać kolejjną funkcję.
Offline
Strony: 1