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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2024-04-19 21:39:12

  neo386neo - Użytkownik

neo386neo
Użytkownik
Zarejestrowany: 2011-02-24

Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

Jak przejść do drugiego z kolei wiersza w dialogu po wykonaniu komendy sh /bin/skrypt.sh . Jak w instalatorze Slackware.....

Kod:

    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

 

#2  2024-04-20 15:57:02

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

Skopiowałem ten kod i wydaje się być ok... Dostaje w zależności od wybranej opcji z menu

Kod:

Wybrałeś Ok
1|2|3

albo

Kod:

Niczego nie wybrałeś

W czym jest problem?


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#3  2024-04-20 19:42:38

  neo386neo - Użytkownik

neo386neo
Użytkownik
Zarejestrowany: 2011-02-24

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

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

 

#4  2024-04-20 19:54:51

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

To można zrobić za pomocą pętli while:

Kod:

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)


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#5  2024-04-21 07:55:38

  neo386neo - Użytkownik

neo386neo
Użytkownik
Zarejestrowany: 2011-02-24

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

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

 

#6  2024-04-21 14:07:22

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

Kod:

#!/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)


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#7  2024-04-21 16:39:17

  neo386neo - Użytkownik

neo386neo
Użytkownik
Zarejestrowany: 2011-02-24

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

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

 

#8  2024-04-21 22:31:31

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Automatyczne przejście do kolejnego wiersza (zaznaczenia) w dialogu.

To w submenu1 możesz wywołać kolejjną funkcję.


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)