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