Strona 1 z 1

Szablon dialog --menu i pobieranie danych

: 25 grudnia 2007, 15:13
autor: axlinux
Witam

Zanim opowiem o swoim problemie chcę poinformować o tym że przeglądałem google i posty na tym forum. Podobny problem już się tutaj pojawił lecz nie potrafiłem wyłuskać z niego informacji i zastosować w moim skrypcie.

Mam do napisania skrypt z pomocą dialog który będzie prostym managerem plików pod konsolę.

Kod: Zaznacz cały

#!/bin/bash
dialog --title "Okno menu" \
--backtitle "Manager Plików" \
--menu "Menu" 9 50 3 \
1 Nowy Katalog \
2 Usuń Katalog \
3 Kopiuj \
4 Wstaw pusty plik


Problem polega na tym jak wyciągnąć z tego daną która posiada informację o tym co użytkownik wybrał.

Kombinowałem trochę lecz coś nie za bardzo wychodziło. Czy może mi ktoś pomóc napisać małego gotowca :D

Dziękuje z góry :)

: 25 grudnia 2007, 15:26
autor: Ventrue

Kod: Zaznacz cały

 #
# Script to create simple menus and take action according to that selected
# menu item
#
while :
 do
    clear
    echo "-------------------------------------"
    echo " Main Menu "
    echo "-------------------------------------"
    echo "[1] Show Todays date/time"
    echo "[2] Show files in current directory"
    echo "[3] Show calendar"
    echo "[4] Start editor to write letters"
    echo "[5] Exit/Stop"
    echo "======================="
    echo -n "Enter your menu choice [1-5]: "
    read yourch
    case $yourch in
      1) echo "Today is `date` , press a key. . ." ; read ;;
      2) echo "Files in `pwd`" ; ls -l ; echo "Press a key. . ." ; read ;;
      3) cal ; echo "Press a key. . ." ; read ;;
      4) vi ;;
      5) exit 0 ;;
      *) echo "Opps!!! Please select choice 1,2,3,4, or 5";
         echo "Press a key. . ." ; read ;;
 esac
done
Czyli: za pomocą case. Choć w powyższym przykładzie dialogu nie ma... Później spróbuję to zrobić :)

: 26 grudnia 2007, 14:05
autor: axlinux
Właśnie jest taka sprawa że bez dialogu potrafię zrobić ale właśnie potrzebuje aby skrypt był napisany za pomocą polecenia dialog.

: 26 grudnia 2007, 16:19
autor: rupek

Kod: Zaznacz cały

#!/bin/bash 


dialog --title "Okno menu" \ 
--backtitle "Manager Plików" \ 
--menu "Menu" 9 50 3 \ 
1 Nowy Katalog \ 
2 Usuń Katalog \ 
3 Kopiuj \ 
4 Wstaw pusty plik > /tmp/test
read d < /tmp/test
i teraz pod zmienna $d masz to co zostało wybrane


lub

Kod: Zaznacz cały

#!/bin/bash
d=$(dialog --title "Okno menu" \ 
--backtitle "Manager Plików" \ 
--menu "Menu" 9 50 3 \ 
1 Nowy Katalog \ 
2 Usuń Katalog \ 
3 Kopiuj \ 
4 Wstaw pusty plik)
echo $d


i teraz równirż pod $d masz to co zostało wybrane

: 27 grudnia 2007, 10:35
autor: Ventrue

Kod: Zaznacz cały

dialog --title "Okno menu" \
--backtitle "Manager Plików" \
--menu "Menu" 13 50 6 \
"1" "Tworzenie nowego katalogu" \
"2" "Kopiowanie pliku" \
"3" "Coś innego" \
"4" "Zakończ"

if [ $? = 4 ]; then
exit 0
fi
Mi tak działa.

: 02 stycznia 2008, 17:52
autor: axlinux

Kod: Zaznacz cały

#!/bin/bash
d=$(dialog --title "Okno menu" \
--backtitle "Manager Plików" \
--menu "Menu" 9 50 3 \
1 Nowy Katalog \
2 Usuń Katalog \
3 Kopiuj \
4 Wstaw pusty plik)
echo $d

Chyba najbardziej odpowiadałaby mi ta wersja tylko że ona nie chce mi działać, tzn bash nie wywala błędów lecz konsola wyświetla pustą linijkę a po naciśnięciu entera pojawia się np 1 czyli to co powinno być zaznaczone z dialoga.

: 02 stycznia 2008, 20:15
autor: rupek
axlinux, no bo to na takiej zasadzie działa