shell编程 条件判断式----利用 case ..... esac 判断
条件判断式----利用 case ..... esac 判断
case $变量名称 in <==关键词为 case ,还有变量前有钱字号
"第一个变量内容") <==每个变量内容建议用双引号括起来,关键词则为小括号 )
程序段
;; <==每个类别结尾使用两个连续的分号来处理!
"第二个变量内容")
程序段
;;
*) <==最后一个变量内容都会用 * 来代表所有其它值
不包含第一个变量内容与第二个变量内容的其它程序执行段
exit 1
;;
esac <==最终的 case 结尾!”反过来写”思考一下!
要注意的是,这个语法以 case (实际案例之意) 为开头,结尾自然就是将 case 的英文反过来写!就成为 esac 啰! 不会很难背啦!
另外,每一个变量内容的程序段最后都需要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔!
至于为何需要有 * 这个变量内容在最后呢?这是因为,如果使用者不是输入变量内容一或二时, 我们可以告知使用者相关的信息啊!废话少说,案例说明
源程序如下:
1 case $1 in 2 "hello") 3 echo "Hello,how are you?" 4 ;; 5 "") 6 echo "You MUST input parameters,ex>{$0 someword}" 7 ;; 8 *) #其实就相当于通配符,0~无穷多个任意字符之意! 9 echo "Usage $0 {hello}" 10 ;; 11 esac
用vi编辑器创建shell脚本:
用vi编辑器编写shell脚本:
执行结果如下:
在上面这个 sh09-2.sh 的案例当中,如果你输入” sh test02.sh test “来执行, 那么屏幕上就会出现”Usage test02.sh {hello}”的字样,告知执行者仅能够使用 hello 喔~ 这样的方式对于需要某些固定字符串来执行的变量内容就显的更加的方便呢! 这种方式你真的要熟悉喔!这是因为系统的很多服务的启动 scripts 都是使用这种写法的。