网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Shell
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何在.cshrc中判断是否在logins.
.Shell介绍.
.赶走一些你不希望进入的用户.
.设置Unix启动admin888.
.批量添加用户.
.Linux程式设计-11.ShellScript(b.
.我要如何将csh的stdout与stderr导.
.Linux程式设计-11.ShellScript(b.
.快速编辑Shell命令行.
.也谈在Unix系统中杀死相关终端的.
.Linux程式设计-11.ShellScript(b.
.Bash中对变量的操作.
.Linux程式设计-11.ShellScript(b.
.Shell编程.
.Linux程式设计-11.ShellScript(b.
.从ifconfig中得到IP地址.
.HowtoCreatingandBootingaNewKer.
.利用ip_conntrack表实现封ip的sh.
.内核设计篇.
.Linux程式设计-11.ShellScript(b.

Linux程式设计-11.ShellScript(bash)--(6)流程控制case

发表日期:2006-3-5


casewordin[pattern[|pattern]...)list;;]...esac
case/esac的标准用法大致如下:
case$argin
pattern|sample)#arginpatternorsample
;;
pattern1)#arginpattern1
;;
*)#default
;;
esac
arg是您所引入的参数,如果arg内容符合pattern项目的话,那麽便会执行pattern以下的程式码,而该段程式码则以两个分号";;"做结尾。

可以注意到"case"及"esac"是对称的,如果记不起来的话,把"case"颠倒过来即可。



--------------------------------------------------------------------------------

例一:paranoia
#!/bin/sh
case$1in
start|begin)
echo"startsomething"
;;
stop|end)
echo"stopsomething"
;;
*)
echo"Ignorant"
;;
esac

执行
[foxman@foxmanbash]#chmod755paranoia
[foxman@foxmanbash]#./paranoia
Ignorant
[foxman@foxmanbash]#./paranoiastart
startsomething
[foxman@foxmanbash]#./paranoiabegin
startsomething
[foxman@foxmanbash]#./paranoiastop
stopsomething
[foxman@foxmanbash]#./paranoiaend
stopsomething

--------------------------------------------------------------------------------

例二:inetpanel
许多的daemon都会附上一个管理用的ShellScript,像BIND就附上ndc,Apache就附上apachectl。这些管理程式都是用shellscript来写的,以下示一个管理inetd的shellscript。
#!/bin/sh

case$1in
start|begin|commence)
/usr/sbin/inetd
;;
stop|end|destroy)
killallinetd
;;
restart|again)
killall-HUPinetd
;;
*)
echo"usage:inetpanel[start|begin|commence|stop|end|destory|restart|again]"
;;
esac



--------------------------------------------------------------------------------

例三:判断系统
有时候,您所写的Script可能会跨越好几种平台,如Linux、FreeBSD、Solaris等等,而各平台之间,多多少少都有不同之处,有时候需要判断目前正在那一种平台上执行。此时,我们可以利用uname来找出系统资讯。
#!/bin/sh

SYSTEM=`uname-s`

case$SYSTEMin
Linux)
echo"MysystemisLinux"
echo"DoLinuxstuffhere..."
;;
FreeBSD)
echo"MysystemisFreeBSD"
echo"DoFreeBSDstuffhere..."
;;
*)
echo"Unknownsystem:$SYSTEM"
echo"Idon'twhattodo..."
;;
esac
上一篇:Linux程式设计-11.ShellScript(bash)--(5)控制圈for 人气:3921
下一篇:Linux程式设计-11.ShellScript(bash)--(7)流程控制select 人气:4541
浏览全部shell的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐