改动之前的代码
1.推断 $1 是否为 hello,假设是的话,就显示 "Hello, how are you ?";
2.假设没有加不论什么參数。就提示使用者必需要使用的參数下达法。
3.而假设增加的參数不是 hello ,就提醒使用者仅能使用 hello 为參数。
有兴趣要侦測的是比較常见的 port 21, 22, 25及 80 时,那我怎样透过 netstat 去侦測我的主机是否有开启这四个基本的网络服务端口呢?由於每一个服务的keyword都是接在冒号『 : 』后面, 所以能够藉由撷取类似『 :80 』来侦測的!
利用 case ..... esac 推断
case $变量名称 in <==keyword为 case ,还有变量前有钱字号 "第一个变量内容") <==每一个变量内容建议用双引號括起来,keyword则为小括号 ) 程序段 ;; <==每一个类别结尾使用两个连续的分号来处理! "第二个变量内容") 程序段 ;; *) <==最后一个变量内容都会用 * 来代表全部其它值 不包括第一个变量内容与第二个变量内容的其它程序执行段 exit 1 ;; esac <==终于的 case 结尾! |
另外。每个变量内容的程序段最后都须要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔! 至於为何须要有 * 这个变量内容在最后呢?这是由于,假设使用者不是输入变量内容一或二时。 我们能够告知使用者相关的资讯啊。
一般来说。使用『 case $变量 in 』这个语法中。其中的那个『 $变量 』大致有两种取得的方式:
直接下达式:比如上面提到的。利用『 script.sh variable 』 的方式来直接给予 $1 这个变量的内容。这也是在 /etc/init.d 文件夹下大多数程序的设计方式。
互动式:透过 read 这个命令来让使用者输入变量的内容。