spyroskaftanis έγραψε:ποιο είναι το λάθος;; το done;;;;;
Βάζεις πολλά "do". Πρέπει να χρησιμοποιήσεις ένα select, ένα do και ένα done:
- Κώδικας: Επιλογή όλων
#!/bin/bash
PS3='Choose a number: '
select item in \
'a' \
'b' \
'c' \
'd'
do
echo "$REPLY - $item"
break
done
Το PS3 είναι το prompt, το μήνυμα που εμφανίζει στο χρήστη κατά την επιλογή.
Το select δίνει ένα variable με τον αριθμό της επιλογής: $REPLY
Μπορείς να το εκμεταλλευτείς ως ακολούθως:
- Κώδικας: Επιλογή όλων
#!/bin/bash
PS3='Επιλέξτε αριθμό: '
select item in \
'Item 1' \
'Item 2' \
'Item 3' \
'Item 4'
do
case $REPLY in
1 ) VARIABLE="first text string" ;;
2 ) VARIABLE="second text string" ;;
3 ) VARIABLE="third text string" ;;
4 ) VARIABLE="fourth text string" ;;
* ) echo 'Invalid choice, try again!' ;;
esac
if [[ -n $item ]]; then
echo "Your variable: $VARIABLE"
break
fi
done
ή χωρίς το case:
- Κώδικας: Επιλογή όλων
#!/bin/bash
PS3='Choose a number: '
select item in \
'Item 1' \
'Item 2' \
'Item 3' \
'Item 4'
do
if [[ $REPLY == 1 ]]; then
echo "You chose the 1st item: $item"
break
elif [[ $REPLY == 2 ]]; then
echo "You chose the 2nd item: $item"
break
elif [[ $REPLY == 3 ]]; then
echo "You chose the 3rd item: $item"
break
elif [[ $REPLY == 4 ]]; then
echo "You chose the 4th item: $item"
break
else
echo "Invalid choice. Try again!"
fi
done