用倒序的字母单词和正序的单词配对,比如if语句,结束时用fi来配对
esac和case配对,是多路分支的语句,类似于C中的switch/case语句,大致形式如下:
case $参数变量 in
“变量值1”) # 变量值用双引号括起来,关键字用小括号括起来
程序段1 # 对应的逻辑
;; # 每个类别结尾使用两个连续的分号来处理
“变量值2”)
程序段2
;;
“变量值3”)
程序段3
;;
*) # 最后一个位置参数值会用*来代替所有其他值
程序段4
;;
esac
一般来说,case $变量 in
语法中,$变量
有两种取得的方式:
- 直接下达式:利用
./script.sh variable
的脚本运行方式,直接给$1
位置变量赋值,这也是/etc/init.d目录下大多数程序的设计方式。
#!/bin/bash
case $1 in
"hello")
echo "Hello,how are you?"
;;
"")
echo "You must input some parameters,ex>{$0 someword}"
;;
*)
echo "Usage $0 {hello}"
;;
esac
# ./script.sh hello
#!/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
# ./script.sh