#!/bin/bash PS3='Choose your favorite vegetable: ' # Sets the prompt string. # Otherwise it defaults to #? . echo select vegetable in "beans" "carrots" "potatoes" "onions" "rutabagas" do echo echo "Your favorite veggie is $vegetable." echo "Yuck!" echo break # What happens if there is no 'break' here? 一直循环执行 done exit # Exercise: # -------- # Fix this script to accept user input not specified in #+ the "select" statement. # For example, if the user inputs "peas," #+ the script would respond "Sorry. That is not on the menu."
[root@localhost shell]# ./ex31.sh
1) beans
2) carrots
3) potatoes
4) onions
5) rutabagas
Choose your favorite vegetable: 2
Your favorite veggie is carrots.
carrots
Yuck!
#!/bin/bash PS3='Choose your favorite vegetable: ' echo choice_of() { select vegetable # [in list] omitted, so 'select' uses arguments passed to function. do echo echo "Your favorite veggie is $vegetable." echo "Yuck!" echo break done } choice_of beans rice carrots radishes tomatoes spinach # $1 $2 $3 $4 $5 $6 # passed to choice_of() function exit 0
[root@localhost shell]# ./ex32.sh beans rice carrots radishes tomatoes spinach
1) beans
2) rice
3) carrots
4) radishes
5) tomatoes
6) spinach
Choose your favorite vegetable: 4
Your favorite veggie is radishes.
Yuck!