Shell脚本-从入门到精通.ppt
《Shell脚本-从入门到精通.ppt》由会员分享,可在线阅读,更多相关《Shell脚本-从入门到精通.ppt(74页珍藏版)》请在咨信网上搜索。
1、Linux 操作系统Shell 脚本编程脚本编程主要内容和学习要求主要内容和学习要求q 掌握创建 shell 脚本的基本步骤q 学会使用条件测试q 掌握 if 条件结构与 case 选择结构q 掌握 for 循环、while 循环和 until 循环结构q 学会 shift 命令的使用q 学会 shell 脚本的调试q Shell 脚本Shell 脚本脚本p如果有一系列你经常使用的Linux命令,你可以把它们存储在一个文件里,shell可以读取这个文件并顺序执行其中的命令,这样的文件被称为脚本文件。shell 脚本按行解释。q Shell 脚本的编写l Shell 脚本是纯文本文件,可以使用任
2、何文本编辑器编写l Shell 脚本通常是以.sh 作为后缀名q Shell 脚本的执行chmod+x script_name./script_namebash script_nameu 第一行:指定用哪个程序来编译和执行脚本。q Shell 脚本的格式#!/bin/bashu 可执行语句和 shell 控制结构u 注释:以“#”开头,可独占一行,或跟在语句的后面。Shell 脚本脚本#!/bin/sh#!/bin/csh一个 shell 脚本通常由一组 Linux 命令、shell 命令、控制结构和注释语句构成。在脚本中多写注释语句是一个很好的编程习惯#!/bin/bash#This is
3、the first Bash shell program#ScriptName:greetings.shechoecho e Hello$LOGNAME,cecho its nice talking to you.echo Your present working directory is:pwd#Show the name of present directoryechoecho e The time is date+%T!.nByeechobash greetings.shchmod+x greetings.sh./greetingsShell 脚本举例脚本举例echo命令n功能说明:显示
4、文字。n语 法:echo-ne字符串 或 echo-help-version n补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。n-n 不进行换行n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出 n 换行 b 空格.参 数:n-n 不要在最后自动换行 n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:pa 发出警告声;pb 删除前一个字符;pc 最后不加上换行符号;pf 换行但光标仍旧停留在原来的位置;pn 换行且光标移至行首;pr 光标移至行首,但不换行;pt 插入tab;pv 与f相同;p
5、 插入字符;pnnn 插入nnn(八进制)所代表的ASCII字符;p-help 显示帮助 p-version 显示版本信息#!/bin/bash#This script is to test the usage of read#Scriptname:ex4read.shecho=examples for testing read=echo-e What is your name?cread nameecho Hello$nameechoecho-n Where do you work?readecho I guess$REPLY keeps you busy!echoread-p Enter
6、your job title:#自动读给REPLYecho I thought you might be an$REPLY.echoecho=End of the script=Shell 脚本举例脚本举例read命令命令nread variable#读取变量给variablenread x y#可同时读取多个变量nread#自动读给REPLYnread p“Please input:”#自动读给REPLYu 状态变量$?中保存命令退出状态的值grep$USER/etc/passwdecho$?grep hello/etc/passwd;echo$?条件测试条件测试u 条件测试可以根据某个特定
7、条件是否满足,来选择执行相应的任务。u Bash 中允许测试两种类型的条件:命令成功或失败,表达式为真或假u 任何一种测试中,都要有退出状态(返回值),退出状态为 0 表示命令成功或表达式为真,非0 则表示命令失败或表达式为假。q 内置测试命令 testl 通常用 test 命令来测试表达式的值x=5;y=10test$x-gt$yecho$?l test 命令可以用 方括号 来代替x=5;y=10$x-gt$y echo$?q 表达式测试包括字符串测试、整数测试和文件测试。测试表达式的值测试表达式的值方括号前后要留空格!name=Tom$name=Tt?echo$?l 2.x 版本以上的 B
8、ash 中可以用双方括号来测试表达式的值,此时可以使用通配符进行模式匹配。测试表达式的值测试表达式的值$name=Tt?echo$?q 字符串测试-z str 如果字符串 str 长度为 0,返回真-n str 如果字符串 str 长度不为 0,返回真 str1=str2 两字符串相等 str1!=str2 两字符串不等name=Tom;-z$name;echo$?操作符两边必须留空格!字符串测试字符串测试name2=Andy;$name=$name2 ;echo$?q 整数测试,即比较大小 int1-eq int2 int1 等于 int2 int1-ne int2 int1 不等于 int
9、2 int1-gt int2 int1 大于 int2 int1-ge int2 int1 大于或等于 int2 int1-lt int2 int1 小于 int2 int1-le int2 int1 小于或等于 int2x=1;$x-eq 1;echo$?x=a;$x-eq 1;echo$?整数测试整数测试操作符两边必须留空格!Xq 整数测试也可以使用 let 命令或双圆括号x=1;let$x=1;echo$?x=1;($x+1=2);echo$?只能用于整数测试!整数测试整数测试l 相应的操作符为:=、!=、=、y);then echo x is larger than yelif(x=y
10、);then echo x is equal to yelse echo x is less than yfichkperm.sh#!/bin/bash#Using the old style test command:#filename:perm_check.sh#file=testingif -d$file then echo$file is a directory elif -f$file then if -r$file-a-w$file-a-x$file then#nested if command echo You have read,write,and execute permis
11、sion on$file.fielse echo$file is neither a file nor a directory.fichkperm2.sh#!/bin/bash#Using the new style test command:#filename:perm_check2.sh#file=./testingif -d$file then echo$file is a directory elif -f$file then if -r$file&-w$file&-x$file then#nested if command echo You have read,write,and e
12、xecute permission on$file.fielse echo$file is neither a file nor a directory.finame_grep#!/bin/bash#filename:name_grep#name=Tomif grep$name/etc/passwd&/dev/null then :else echo$name not found in/etc/passwd exit 2fitellme#!/bin/bashecho-n How old are you?read ageif$age-lt 0-o$age-gt 120 thenecho Welc
13、ome to our planet!exit 1 fiif$age-ge 0-a$age-le 12 thenecho Children is the flowers of the countryelif$age-gt 12-a$age-le 19 thenecho Rebel without a causeelif$age-gt 19-a$age-le 29 then echo You got the world by the tail!elif$age-ge 30-a$age-le 39 thenecho Thirty something.elseecho Sorry I askedfit
14、ellme2#!/bin/bashecho-n How old are you?read ageif(age 120)thenecho Welcome to our planet!exit 1 fiif(age=0&age=13&age=19&age=30&age 0)#or$#-gt 0 do echo$*shiftdoneshft.sh#!/bin/bash#Using shift to step through all the positional parameters.until -z$1#Until all parameters used up.do echo$1 shiftdone
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shell 脚本 入门 精通
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。