shell编程1.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《shell编程1.ppt》由会员分享,可在线阅读,更多相关《shell编程1.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、shell编程shell编程o帮助用户完成特定的任务,提高维护系统的效率o配置应用程序o通过shell命令解释器解释执行shell脚本2shell 编程的基本过程o建立建立 shell 文件文件n包含任意多行操作系统命令或shell命令的文本文件o赋予赋予shell文件执行权限文件执行权限n用chmod命令修改权限o执行执行shell文件文件n直接在命令行上调用shell程序3shell程序设计实例1.建立建立shell文件文件(可用任何建立文本文件的方法可用任何建立文本文件的方法):nvi test.shwho|grep$1$1,$2,$3为参数为参数2.赋予执行权限赋予执行权限:(初始文本
2、文件无执行权限初始文本文件无执行权限)n$chmod 740 test.shn$ls-l test.shn-rwxr-1 zlm None 14 Nov 30 21:24 test.sh4shell程序设计实例3.执行该执行该shell程序程序n$test.sh student5ntest.sh:not found4.指定路径或修改环境变量指定路径或修改环境变量PATH后执行后执行shell程序程序n$./test.sh student5nstudent5 tty06 Feb 8 09:125一个简单的shell程序#!/bin/bash#a simple shell script examp
3、le#a functionfunction say_hello()echo enter your name,please.:read nameecho hello$name!echo programme starts here.say_helloecho programme ends.6一个简单的shell程序$chmod+x shell.sh$./shell.sh programme starts here.enter your name,please.:tomhello tom!programme ends.7变量的声明和使用obash是一种弱类型的脚本语言(对类型是一种弱类型的脚本语言(
4、对类型的要求不严格)的要求不严格)o变量值变量值oa=“hello”b=8o引用变量引用变量n通过在变量名前加$符号oecho“a is$a”8标点符号在变量中的使用o单引号和双引号单引号和双引号n单引号禁止变量替换,元字符保持其符号本身;而双引号允许元字符变量替换n例如:$a=“he is a student”$echo“She said:$a”She said:he is a student$b=The value of a is$a$echo$bThe value of a is$a9标点符号在变量中的使用o花括号花括号n将变量名和后面的字符串区分开n$变量名n例如:$c=There i
5、s a teach$echo“$cer reading room”reading room$echo“$cer reading room”There is a teacher reading room10标点符号在变量中的使用o反撇号反撇号n反使变量按命令来执行n例如:$a=date$echo$adate$b=date$echo$bWed Nov 1 16:28:19 Beijing 200611变量的声明和使用o$变量名引用变量的扩展用法:o声明:variable是变量名,value代表一个具体的值n$variable:-value:如果变量variable存在,则返回variable的值,
6、否则返回值valuen$variable:=value:如果变量variable存在,则返回variable的值,否则先将值value赋给变量variable,然后返回值value12变量的声明和使用n$variable:+value:o如果变量variable存在,则返回值value,否则返回空值n$variable:?value:o如果变量variable存在,则返回variable的值,否则将value送到标准错误输出显示并退出shell程序n$variable:offset:length:ooffset和length为整数数字,中括号代表可选部分。变量variable的第(offset
7、+1)个字符开始的长度为length的子串,如果中括号内的部分省略,则返回第(offset+1)个字符后所有子串13例子$var=hello$echo$var$title:-somebody!hello somebody!$echo$var$title:+somebody!hello!$echo$var$title:?title is null or empty!bash:title:title is null or empty$echo$var$title:=tom and jerry!hello tom and jerry!$echo$var$title:+”somebody”!hello
8、 somebody!$echo$var$title:8:5!hello jerry!14常用的系统变量p$0 当前shell程序的名字p$1$9 命令行上的第一到第九个参数p$#命令行上的参数个数p$*命令行上的所有参数p$命令行上的参数集合p$当前进程的进程标识号(PID)p$?上一条命令的退出状态p$!最后一个后台进程的进程标识号15例如:o$echo aa bb cc dd$oaa bb cc dd 2391o$cat file1 file2 file3 2 errlogo$echo$?o1 n(非0表示命令运行失败,错误信息在errlog 文件中)16shell 程序和语句oshell
9、 程序由零至多条shell语句构成,shell语句包括三大类:n说明性语句:说明性语句:o以#号开始到行尾的部分,不被解释执行n功能性语句功能性语句:o操作系统命令、shell内部命令、自编程序等n结构性语句:结构性语句:o条件测试语句、多路分支语句、循环语句、循环控制语句等17说明性语句o注释行从注释行从#号开始到所在行的行尾,其内容不被号开始到所在行的行尾,其内容不被解释执行解释执行,可以出现在程序中的任何位置可以出现在程序中的任何位置o可以单独占用一行可以单独占用一行,也可以接在执行语句的后面也可以接在执行语句的后面#!/bin/sh#command_2#command_2的语句说明的语
10、句说明#下面程序段的说明#command_m#command_n 18功能性语句oread命令nread从标准输入读入一行,并赋值给后面的变量n语法语法:oread varn把读入的数据全部赋给var oread var1 var2 var3n把读入行中的第一个词赋给var1,第二个词赋给var2,把其余所有的词赋给最后一个变量19read应用实例#example1 for readecho Input your name:nread usernameecho Your name is$username#example2 for readecho Input date with format
11、yyyy mm dd:nread year month dayecho Today is$year/$month/$day,right?echo Press any key to confirm and continuenread answerecho I know the date,bye!20功能性语句oexpr 命令命令n算术运算命令expr主要用于进行简单的整数运算,包括加(+)、减(-)、乘(*)、整除(/)和求模(%)等操作$expr 12 +5 *327$num=9$sum=expr$num *6$echo$sum5421结构性语句o结构性语句主要根据程序的运行状态、输入数据、变
12、量的取值、控制信号以及运行时间等因素来控制程序的运行流程o主要包括n条件判断语句n多路分支语句n循环语句n循环控制语句n后台执行语句22条件判断语句o对某个条件(文件属性、代码执行结果等)进行判断o判断结果:真(0),假(1)o条件判断格式:ntest condition或或 condition o使用判断时,括号要与判断条件之间用空格分隔开23条件判断语句o条件可以是如下几种情况n文件属性的测试:文件类型、文件访问权限等n字符串属性的测试:字符串长度、内容等n整数关系的测试:比较大小、相等判断等n上述三种关系通过逻辑运算符(与、或、非)的组合24常用的文件属性条件判断条件作用-f fnfn存
13、在且存在且fn为普通文件则返回真为普通文件则返回真-bfnfn存在且存在且fn为块设备则返回真为块设备则返回真-e fnfn存在则返回真存在则返回真-d fnfn存在且存在且fn为目录则返回真为目录则返回真-r fnfn存在且存在且fn可读则返回真可读则返回真-w fnfn存在且存在且fn可写则返回真可写则返回真-x fnfn存在且存在且fn可执行则返回真可执行则返回真-O fnfn存在且被当前用户拥有则返回真存在且被当前用户拥有则返回真-L fnfn存在且存在且fn为符号链接则返回真为符号链接则返回真25条件判断实例o分别用两种格式对当前目录下的目录和文件进行测试$ls l a_file.s
14、h-rw-r-r-1 tom users 0 2 14:33a_file.sh$test w a_file.sh$echo$?0$-w a_file.sh$echo$?026条件判断中的逻辑运算符o-a(逻辑与)n格式:“condition1 a condition2”,若两个条件都为真,则结果为真o-o(逻辑或)n格式:“condition1 o condition2”,若两个条件一个为真,则结果为真o!(逻辑非)n格式:“!condition”,当条件为真时,结果为假,反之27逻辑运算符实例o利用逻辑运算对目录中的文件进行多个条件的判断$ls ldrwxr-xr-x 2 tom None
15、0 Dec 8 15:41 a_dir-rw-r-r-1 tom users 0 Dec 8 15:41 a_file.sh-r-r-r-1 tom users 0 Dec 8 15:41 a_file_2.sh$-d a_dir a w a_dir$echo$?0$-x a_file.sh o w a_file_2.sh$echo$?128字符串属性条件作用String_1=string2如果相等则返回真,反之String_1!=string2如果不相等则返回真,反之-z string如果长度为0则返回真,反之-n string如果长度不为0则返回真,反之string同-n string29
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- shell 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内