4 SHELL编程.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)
《4 SHELL编程.ppt》由会员分享,可在线阅读,更多相关《4 SHELL编程.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SHELL编程编程授课教师:张莹E_mail:内容提要内容提要_Shell简介l什么是ShelllShell脚本编写lShell脚本运行_Shell的输入与输出lecholreadl管道l重定向内容提要(续)内容提要(续)_Shell程序设计的语法l变量l条件测试l程序控制流l函数l内嵌命令_Shell程序设计实例CD管理器Shell简介简介_什么是Shelll一个做为用户与Linux系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令;l一种高级、解释性程序设计语言_Shell的种类lBourne shell(sh)lC shell(csh)lKorn shell(ksh)lBour
2、ne Again shell(bash)Shell简介(续)简介(续)_vi编辑器编写shell脚本文件example1#!/bin/bashecho“You are welcome to use bash”echo“Current work directory is$PWD”echo“You are$LOGNAME”_执行shell脚本l输入定向到shell脚本$/bin/bash 脚本名l以脚本名作为参数$脚本名 参数l将shell脚本的权限设置为可执行l$chmod u+x example1l$./example1_shell通配符l?通配单个字符,如 ls tes?.txtl *通配所
3、有字符/字符串,如 ls tes*.*l set 通配方括号中任何一个单个字符,如ls testfx.*l set 通配不包括号方括号内的任何单字符,如ls testfx.*l 通配大括号内的任何字符串,如ls test,t1,t2.*#!/bin/bashfunction fun1().funciton funn().函数定义函数定义主过程主过程shell类型类型Shell的输入与输出的输入与输出_echolecho string_readlread variable1 variable2 .程序举例:echoexample.sh_管道l格式:命令1|命令2l功能:将命令1执行的输出作为命令
4、2执行的输入l举例lls-l|grep hello_输入、输出重定向l格式:、l文件描述符:0标准输入;1标准输出;2标准错误输出l举例lls l lsoutput.txtlkill HUP 1234 killout.txt 2 killerr.txtlcat bye.txt_teeltee -a files 程序举例:tee.shShell程序设计的语法程序设计的语法变量变量_shell变量的特点lshell变量使用之前不需要事先对它进行声明,在第一次使用它的时侯创建它。lshell变量默认情况下,是字符串类型。lshell变量名区分大小写。l弱类型。_shell变量l赋值l方式一:变量值(
5、等号两侧不能有空格)例1:a=”hello”、a=abc、b=9+1、a2=3、a=(1 2 3 4 5)引号l方式二:带测试的变量赋值 例1:zhisub.sh 例2:zhizhi.sh 例3:zhiadd.sh 例4:zhiquery.sh_变量引用l格式:$变量名、$变量名l程序:variablel举例lecho$helloecho$hello_worldlecho$a0echo$a*echo$alecho“$a*”echo“$a”l$#$#*l$name#pattern$name#patternl$name%pattern$name%patternl$#nameil$#name*$#n
6、amel程序:paraShell程序设计的语法程序设计的语法变量变量Shell程序设计的语法程序设计的语法环境变量环境变量_.bash_profile:设置了环境变量和文件掩码_.bashrc:每次启动bash时便会执行它。_.bash_logout,它仅在退出注册的时候运行 环境变量说明$HOME当前用户登录的子目录$PATH以冒号分隔的用来搜索命令子目录清单$LOGNAME用户登录名$TERM终端类型$LD_LIBRARY_PATH寻找库的路径,以冒号分隔$SHELLSHELL的路径名$PS1命令提示符,通常是$字符$PS2辅助提示符,通常是字符$IFS输入区的分隔符Shell程序设计的语
7、法程序设计的语法系统变量系统变量环境变量说明$n$1 表示第一个参数,$2 表示第二个参数.$#命令行参数的个数$0当前程序的名称$?前一个命令或函数的返回码$*以参数1 参数2.形式保存所有参数$以参数1 参数2.形式保存所有参数$!上一个命令的PID$脚本程序的进程PID程序举例:try_var latestShell程序设计的语法程序设计的语法条件测试条件测试_testtestif test f file.cthen fi_ if -f file.c then fil注意在使用方括号”测试条件时,方括号要与测试条件之间留出空格。字符串比较类_比较相等或不等的时侯,符号两边要与字符串用空格
8、符相隔开string1=string2如果两字符串相同,则结果为真string1!=string2如果两字符串不相同,则结果为真-n string如果字符串不是空,则结果为真-z string如果字符串是空,则结果为真算术比较类expression1 eq expression2如果两个表达式相等,则结果为真expression1 ne expression2如果两个表达式不等,则结果为真expression1 gt expression2如果前一个表达式大于后一个表达式,则结果为真expression1 ge expression2如果前一个表达式大于或等于后一个表达式,则结果为真expre
9、ssion1 lt expression2如果前一个表达式小于后一个表达式,则结果为真expression1 le expression2如果前一个表达式小于或等于后一个表达式,则结果为真!expression取表达式的非,即表达式为假,则结果为真文件测试类文件条件测试文件条件测试 结果结果-d file如果文件是一个子目录,则结果为真如果文件是一个子目录,则结果为真-e file如果文件存在,则结果为真如果文件存在,则结果为真-f file如果文件是一个普通文件,则结果为真如果文件是一个普通文件,则结果为真-g file如果文件的如果文件的set-group-id被设置,则结果为真被设置,则
10、结果为真-r file如果文件可读,则结果为真如果文件可读,则结果为真-s file如果文件的长度不为如果文件的长度不为0,则结果为真,则结果为真-u file如果文件的如果文件的set-user-id被设置,则结果为真被设置,则结果为真-w file如果文件可写,则结果为真如果文件可写,则结果为真-x file如果文件可执行,则结果为真如果文件可执行,则结果为真控制结构控制结构_根据某个条件的判断结果,改变程序执行的路径。_常见分支结构liflcase_常见循环结构lforlwhileluntilif分支分支_格式_说明l中括号部分可省略;_举例 if test -f$1 then echo
11、$1 is an ordinary file.else echo$1 is not an ordinary file.fiif if 条件条件1 1thenthen 命令命令#可以是多条语句可以是多条语句 elifelif 条件条件2 2thenthen 命令命令#可以是多条语句可以是多条语句 elseelse 命令命令#可以是多条语句可以是多条语句 fifi#结束标志结束标志 练习:练习:if分支分支_if语句l例如:_if.sh_冒号l例如:colon_elseif语句l例1:elseif1.shl例2:elseif2.sh比较elseif1.sh、elseif2.sh有什么不同?case
12、分支分支_格式_说明:l“条件”可以是变量、表达式、shell命令等;l“模式”为条件的值,并且一个“模式”可以匹配多种值,不同值之间用竖线(|)联结;l“模式”中可以使用通配符l一个模式要用双分号(;)作为结束;l以逆序的case命令(esac)表示case分支语句的结束 case case 条件条件 inin模式模式1)1)命令命令1 1;模式模式2 2)命令命令2 2;.模式模式n n)命令命令n n;esacesac#结束符结束符练习:练习:case分支分支_练习1lcase1.sh_练习2:合并匹配模版lcase2.sh_练习3:多语句执行lcase3.shfor循环循环_格式_说明
13、:l“列表”为存储了一系列值的列表,随着循环的进行,变量从列表中的第一个值依次取到最后一个值;l列表的值可以全部列出,也可用通配的方式,甚至可以是某命令的输出值(如$(ls))l如果中括号中的部分省略掉,Bash则认为是“in$”,即执行该程序时通过命令行传给程序的所有参数的列表。le1,e2,e3是算术表达式。即:先按算术运算规则计算表达式e1;接着计算e2,如果e2值不为0,则执行命令表中的命令,并且计算e3;然后重复,直至e2为0,退出循环。for for 变量变量 in in 列表列表 dodo 命令表命令表donedonefor for 变量变量 in in 文件正文件正则表达式则表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SHELL编程 SHELL 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内