Προσπαθώ να φτιάξω μια απλή εφαρμογή σε bash η οποία να εμφανίζει ένα μενού στο οποίο οι διαθέσημες επιλογές να ανοίγουν διάφορα αρχεία (φωτογραφίες κτλ)
Συγκεκριμένα υπάρχουν διαθέσιμες επιλογές για 3 νόμους της φυσικής οι οποίες θα οδηγούν η καθεμία σε άλλες επιλογές κτλ.
Δεν έχω πρόβλημα να φτιάξω την εφαρμογή σε περιβάλλον γραμμής εντολών, έχω όμως σε γραφικό περιβάλλον. Χρησιμοποιώ το Xdialog.
Tο πρόβλημα είναι ότι δεν μπορώ να δημιουργήσω περιπτώσεις για κάθε επιλογή του μενού.
(Αυτό το παράδειγμα είναι πιο απλουστευμένο από το κανονικό)
- Κώδικας: Επιλογή όλων
#! /bin/bash
#Filename:Φυσική Β' λυκείου Κατεύθυνσης 1ο & 2ο κεφάλαιο
#welcome message
Xdialog --title "Φυσική Κατεύθυνσης Β'Λυκείου" \
--msgbox "Καλωσήρθατε! Σε αυτή την εφαρμογή θα βρείτε σημαντικές
πληροφορίες για το πρώτο κεφάλαιο της ύλης σας." 10 80
Xdialog --title "Επιλογές" \
--menu "Η εφαρμογή αυτή σας προσφέρει κάποιες \n\
επιλογές, ώστε να ανακαλύψετε τα πάντα\n\
για τα δύο πρώτα κεγάλαι της Φυσική Β'Λυκείου\n\
που αναφέρονται στα αέρια.\n\
Πάμε λοιπόν!\n\n\
Επέλεξε το τι θες να δεις:" 24 71 6 \
"Νόμος του Boyle" "Ισόθερμη Μεταβολή" \
"Νόμος του Charles" "Ισόχωρη Μεταβολή" \
"Νόμος του Gay-Lussac" "Ισοβαρής Μεταβολή" 2> /tmp/menu.tmp.$$
retval=$?
choice=`cat /tmp/menu.tmp.$$`
rm -f /tmp/menu.tmp.$$
case $retval in
0)
echo "$choice"
;;
1)
echo "Cancel pressed.";;
255)
echo "Box closed.";;
esac
Η θέση που μπορώ να δουλέψω για τις επιλογές είναι η θέση 0). Η θέση 1) λειτουργεί όταν πατήσουμε cancel στο μενού και η θέση 255) όταν πατήσουμε Χ.
1η σκέψη: Δοκίμασα στο 0) να βάλω αυτό:
- Κώδικας: Επιλογή όλων
0)
if [ $choice == "Νόμος του Boyle" ]; then
echo "a"
fi
if [ $choice == "Νόμος του Charles" ]; then
echo "b"
fi
if [ $choice == "Νόμος του Gay-Lussac"]; then
echo "c"
fi
Δεν δούλεψε. Έλεγε too many arguments
2η σκέψη: Δοκίμασα να βάλω και άλλα νούμερα 0) 1) 2) 3) μάταια. Μόνο ότι ήταν στο 0) λαμβανόταν υπ' όψιν για τις επιλογές του μενού.
3η σκέψη. Δοκίμασα το read ορίζοντας μια νέα μεταβλητή (read a) και προσπάθησα να χρησιμοποιήσω αυτό με τον τρόπο της 1ης σκέψης, αλλά πάλι δεν δούλεψε...

Όσοι έχετε ασχοληθεί...για ρίξτε ιδέες!!
(Χρησιμοποίησα αυτόν τον οδηγό http://xdialog.free.fr/ αλλά απλώς χρησιμοποιεί το $choice ως μεταβλητή. Δεν παίρνει περιπτώσεις
