您的位置:首页 > 运维架构 > Shell

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

2015-08-08 15:00 225 查看
修改之前的代码





1.判断 $1 是否为 hello,如果是的话,就显示 "Hello, how are you ?";

2.如果没有加任何参数,就提示使用者必须要使用的参数下达法;

3.而如果加入的参数不是 hello ,就提醒使用者仅能使用 hello 为参数。





有兴趣要侦测的是比较常见的 port 21, 22, 25及 80 时,那我如何透过 netstat 去侦测我的主机是否有开启这四个主要的网络服务端口呢?由於每个服务的关键字都是接在冒号『 : 』后面, 所以可以藉由撷取类似『 :80 』来侦测的!







利用 case ..... esac 判断

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


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





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

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

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











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: