改动之前的代码

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


Shell Scripts - 条件语句,case语句,function功能_服务端_02


    1.推断 $1 是否为 hello,假设是的话。就显示 "Hello, how are you ?";
    2.假设没有加不论什么參数。就提示使用者必需要使用的參数下达法;
    3.而假设增加的參数不是 hello ,就提醒使用者仅能使用 hello 为參数。


Shell Scripts - 条件语句,case语句,function功能_实际案例_03


Shell Scripts - 条件语句,case语句,function功能_变量名_04


        有兴趣要侦測的是比較常见的 port 21, 22, 25及 80 时,那我怎样透过 netstat 去侦測我的主机是否有开启这四个基本的网络服务端口呢?由於每一个服务的keyword都是接在冒号『 : 』后面。 所以能够藉由撷取类似『 :80 』来侦測的。

Shell Scripts - 条件语句,case语句,function功能_其他_05


Shell Scripts - 条件语句,case语句,function功能_程序段_06


Shell Scripts - 条件语句,case语句,function功能_实际案例_07


利用 case ..... esac 推断

case  $变量名称 in   <==keyword为 case ,还有变量前有钱字号
  "第一个变量内容")   <==每一个变量内容建议用双引號括起来。keyword则为小括号 )
	程序段
	;;            <==每一个类别结尾使用两个连续的分号来处理。
  "第二个变量内容")
	程序段
	;;
  *)                  <==最后一个变量内容都会用 * 来代表全部其它值
	不包括第一个变量内容与第二个变量内容的其它程序执行段
	exit 1
	;;
esac                  <==终于的 case 结尾!『反过来写』思考一下。

        要注意的是,这个语法以 case (实际案例之意) 为开头,结尾自然就是将 case 的英文反过来写!就成为 esac 罗! 不会非常难背啦!另外,每个变量内容的程序段最后都须要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔! 至於为何须要有 * 这个变量内容在最后呢?这是由于。假设使用者不是输入变量内容一或二时, 我们能够告知使用者相关的资讯啊!


Shell Scripts - 条件语句,case语句,function功能_实际案例_08


Shell Scripts - 条件语句,case语句,function功能_其他_09


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

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



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


Shell Scripts - 条件语句,case语句,function功能_其他_10


Shell Scripts - 条件语句,case语句,function功能_实际案例_11


Shell Scripts - 条件语句,case语句,function功能_实际案例_12


Shell Scripts - 条件语句,case语句,function功能_程序段_13


Shell Scripts - 条件语句,case语句,function功能_变量名_14


Shell Scripts - 条件语句,case语句,function功能_服务端_15