case $变量名称 in
“第一个变量内容”) <==每个变量内容建议用双引号括起来,关键字则为小括号
程序段
;; <==每个类别结尾使用两个连续的分号来处理!
“第二个变量内容”)
程序段
;
*) <==最后一个变量内容都会用*来代替所以其他值
不包含第一个变量内容与第二个变量内容的其他程序运行段
exit 1
;;
esac
一般来说,使用『 case $变量 in 』这个语法中,当中的那个『 $变量 』大致有两种取得的方式:
直接下达式:例如上面提到的,利用『 script.sh variable 』 的方式来直接给予 $1 这个变量的内容,这也是在 /etc/init.d 目录下大多数程序的设计方式。
互动式:透过 read 这个命令来让使用者输入变量的内容。
下面我们使用一个例子来说明:
#!/bin/bash
#Show "Hello" from $1.... by using case .... esac
case $1 in
"hello")
echo "Hello,how are you?"
;;
"")
echo "You must input some parameters,ex>{$0 someword}"
;;
*)
echo "Usage $0 {hello}"
;;
esac
看看下一个例子:
#!/bin/bash
#This script only accepts the fllowing parameters:one,two,three.
echo "This program will print your selection!"
read -p "Input your choice:" choice
case $choice in
"one")
echo "Your choice is ONE."
;;
"two")
echo "Your choice is TWO."
;;
"three")
echo "Your choice is THREE."
;;
*)
echo "Usage: $0 {one|two|three}"
;;
esac