首页 > 代码库 > Shell Scripts - 条件语句,case语句,function功能

Shell Scripts - 条件语句,case语句,function功能

改动之前的代码

技术分享


技术分享


    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 (实际案例之意) 为开头。结尾自然就是将 case 的英文反过来写。就成为 esac 罗。 不会非常难背啦!

另外。每个变量内容的程序段最后都须要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔! 至於为何须要有 * 这个变量内容在最后呢?这是由于,假设使用者不是输入变量内容一或二时。 我们能够告知使用者相关的资讯啊。


技术分享


技术分享


        一般来说。使用『 case $变量 in 』这个语法中。其中的那个『 $变量 』大致有两种取得的方式:

    直接下达式:比如上面提到的。利用『 script.sh variable 』 的方式来直接给予 $1 这个变量的内容。这也是在 /etc/init.d 文件夹下大多数程序的设计方式。



    互动式:透过 read 这个命令来让使用者输入变量的内容。


技术分享


技术分享


技术分享


技术分享


技术分享


技术分享



Shell Scripts - 条件语句,case语句,function功能