第4章-Shell程序设计课件_第1页
第4章-Shell程序设计课件_第2页
第4章-Shell程序设计课件_第3页
第4章-Shell程序设计课件_第4页
第4章-Shell程序设计课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux应用与开发典型实例精讲配套教材:《Linux应用与开发典型实例精讲》

邱铁、于玉龙、徐子川编著..2010.5Email:Linux应用与开发典型实例精讲1第4章Shell程序设计

学习本章要达到的目标:1.学会使用Shell编程,能够编写Shell脚本程序;2.掌握Shell编程中用到的变量、流程控制语句、常用命令、特殊符号;3.基本学会使用Shell脚本函数。第4章Shell程序设计学习本章要达到的目标:24.1Shell编程简介Shell提供了一种以脚本文件的方式来实现之,将所有需要执行的命令按照类似于编程的方法写到一个文件中,当需要使用时,只需要运行这个文件即可完成指定的任务

Shell脚本文件的运行同可执行文件的使用方法相同,在命令提示符下输入文件的路径即可运行

4.1Shell编程简介Shell提供了一种以脚本文件34.2系统变量4.2系统变量44.3条件测试条件测试可以判断脚本程序运行的状态。它常用于条件分支,以便在不同的运行状态下执行不同的命令。

[param1

判断符号

param2][判断符号

param]

4.3条件测试条件测试可以判断脚本程序运行的状态。它常用54.3.1文件状态测试-b

判断文件是否为块设备,若文件不存在返回假。-c 判断文件是否为字符设备,若文件不存在返回假。-dpathname

判断路径pathname是否为目录,若路径不存在返回假。-epathname

判断路径pathname是否存在。-f 判断文件是否为真会文件,若文件不存在返回假。-gpathname

判断路径pathname是否设置了SGID位,若路径不存在返回假。-h 判断文件是否为链接文件,若文件不存在返回假。-kpathname

判断路径pathname是否设置了“粘滞”位,若路径不存在返回假。4.3.1文件状态测试-b 判断文件是否为块设备,若文6-p 判断文件是否为管道文件,若文件不存在返回假。-rpathname

判断路径pathname是否为可读,若路径不存在返回假。-s 判断文件的尺寸是否大于0,若文件不存在返回假。-S 判断文件是否是Socket,文件不存在返回假。-upathname

判断路径pathname是否设置了SUID位,若路径不存在返回假。-wpathname

判断路径pathname是否为可写,若路径不存在返回假。-xpathname

判断路径pathname是否为可执行,若路径不存在返回假。-p 判断文件是否为管道文件,若文件不存在返回假。7-Opathname

判断路径pathname是否为当前用户所拥有,若路径不存在返回假。-Gpathname

判断路径pathname的用户组是否为当前用户所在组,若路径不存在返回假。file1-ntfile2

判断文件file1是否比文件file2新。file1-otfile2

判断文件file1是否比稳健file2旧。

-Opathname 判断路径pathname是否为当前用84.3.2逻辑操作param1–aparam2

逻辑与。param1–oparam2

逻辑或。!param

逻辑非。4.3.2逻辑操作param1–aparam2 逻辑94.3.3字符串测试-zstring

判断字符串string是否为空串,即长度为0。-nstring

判断字符串string是否为非空串。string1=string2

判断字符串string1和string2是否相等。string1!=string2

判断字符串string1和string2是否不等。string1<string2

按字符编码表排序,字符串string1是否在string2之前。string1>string2

按字符编码表排序,字符串string1是否在string2之后。4.3.3字符串测试-zstring 判断字符串str104.3.4数值测试val1–eqval2

判断val1和val2的数值是否相等。val1–neval2

判断val1和val2的数值是否不等。val1–ltval2

判断val1是否小于val2。val1–leval2

判断val1是否小于等于val2。val1–gtval2

判断val1是否大于val2。val1–geval2

判断val1是否大于等于val2。4.3.4数值测试val1–eqval2 判断val114.4Shell流程控制语句流程控制包括条件执行、循环、分支执行。4.4Shell流程控制语句流程控制包括条件执行、循环、124.4.1if语句if…;then……elif…;then……else……fi

4.4.1if语句if…;then134.4.2case语句casestrinpattern)dosomething;;……esac

4.4.2case语句casestrin144.4.3while语句while…;do……Doneuntil…;do……done

4.4.3while语句while…;do154.4.4for语句forvarinstr1

str2…;do……done

4.4.4for语句forvarinstr1st164.5Shell编程中的常用命令与符号4.5.1read命令

命令的语法:read[参数]变量名常用的参数如下:-ttimeout 设定超时时间。-pprompt 设定提示信息,该提示信息将会显在光标前。4.5Shell编程中的常用命令与符号4.5.1rea174.5.2select命令selectvarinstr1

str2…;dobreak;done

4.5.2select命令selectvarins184.5.3花括号花括号是一种强制的整体标识,可以让一个非整体的字符串强制的解释成一个整体

{catabc.txtecho“aaa”}

4.5.3花括号花括号是一种强制的整体标识,可以让一个非194.5.4引号单引号可以取消所有的转义符号、通配符和分隔符,双引号取消通配符和分隔符的转义,但对于变量依然进行转义

4.5.4引号单引号204.5.5注释注释语句所在行的第一个字符必须为“#”,其后是注释的内容。

4.5.5注释注释语句所在行的第一个字符必须为“#”,其214.6函数Shell中函数被看成是一个小的脚本程序,仅在当前脚本内部进行调用

funname(){……}

4.6函数Shell中函数被看成是一个小的脚本程序,仅在224.7应用实例训练例1.需要完成一个程序,用户输入百分制的分数,之后返回“A”“B”“C”“D”“E”的等级。其中,A等级为90至100分,B等级为80至89分,C等级为70至79分,D等级为60至69分,E等级为0至59分。4.7应用实例训练例1.需要完成一个程序,用户输入百分制23needquit=0while[$needquit-eq0]do echo"Pleaseinputthescore" readscore case$scorein 100|9[0-9])echo"VeryGood";;

8[0-9])echo"Good";; 7[0-9])echo"Middle";; 6[0-9])echo"Pass";; [1-5][0-9])echo"Failure";; quit|q)echo"Quit"

needquit=1;; *)echo"WrongInput!";; esac echo""done

needquit=024第4章-Shell程序设计课件25例2.完成一个文件操作,根据用户指定的目录,删除其中所有文件名以“.c”结尾的文件,若这些文件删除后,目录中没有其他的文件,则将该目录也一并删除。例2.完成一个文件操作,根据用户指定的目录,删除其中所有文件26foriin$*;do find“$i”–name“*.c”–execrm–r–f{}\;

[“$i/*”=$i/*]&&{

rmdir“$i”

echo“DeleteDirectory$i” }done

foriin$*;do27第4章-Shell程序设计课件28思考与练习思考Shell编程与Shell命令之间的关系。阅读资料,了解Shell启动的流程,体会Shell脚本程序在Shell启动过程中的作用。用Shell编程的形式完成下列程序:输出用户通过命令行参数形式提供的多个整数的平均数。具体调用格式如下:$./avg12345678Average:45思考与练习思考Shell编程与Shell命令之间的关系。29经常不断地学习,你就什么都知道。你知道得越多,你就越有力量StudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,Th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论