- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
# rename the original file: if [ -f $filen ]; then echo mv $filen $filen.1 mv $filen $filen.1 fi echo touch $filen touch $filen 这个脚本是如何工作的呢?在检测到用户提供了一个文件名之后,首先进行一个9到1的循环;文件名.9重命名为文件名.10,文件名.8重命名为文件名. 9……等等。循环结束之后,把原始文件命名为文件名.1,同时创建一个和原始文件同名的空文件(touch $filen)。 脚本调试 最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。 shell也有一个真正的调试模式,如果脚本strangescript出错,可以使用如下命令进行调试: sh -x strangescript 上述命令会执行该脚本,同时显示所有变量的值。 shell还有一个不执行脚本只检查语法的模式,命令如下: sh -n your_script 这个命令会返回所有语法错误。 我希望你们现在已经可以开始编写自己的shell脚本了,尽情享受这份乐趣吧! 让我们看一个例子,file命令可以辨别出一个给定文件的文件类型,如:file lf.gz,其输出结果为: lf.gz: gzip compressed data, deflated, original filename, last modified: Mon Aug 27 23:09:18 2001, os: Unix 我们利用这点写了一个名为smartzip的脚本,该脚本可以自动解压bzip2, gzip和zip 类型的压缩文件: #!/bin/sh ftype `file $1` case $ftype in $1: Zip archive* unzip $1 ;; $1: gzip compressed* gunzip $1 ;; $1: bzip2 compressed* bunzip2 $1 ;; * error File $1 can not be uncompressed with smartzip;; esac 你可能注意到上面使用了一个特殊变量$1,该变量包含有传递给该脚本的第一个参数值。也就是说,当我们运行: smartzip articles.zip $1 就是字符串 articles.zip。 select 语句 select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择: select var in ... ; do break; done .... now $var can be used .... #!/bin/sh echo What is your favourite OS? select var in Linux Gnu Hurd Free BSD Other; do break; done echo You have selected $var 如果 以上脚本运行出现 select :NOT FOUND 将 #!/bin/sh 改为 #!/bin/bash 找了半天才找到的答案 该脚本的运行结果如下: What is your favourite OS? 1 Linux 2 Gnu Hurd 3 Free BSD 4 Other #? 1 You have selected Linux while/for 循环 在shell中,可以使用如下循环: while ...; do .... done 只要测试表达式条件为真,则while循环将一直运行。关键字break用来跳出循环,而关键字”continue”则可以跳过一个循环的余下部分,直接跳到下一次循环中。 for循环会查看一个字符串行表(字符串用空格分隔),并将其赋给一个变量: for var in ....; do .... done 下面的示例会把A B C分别打印到屏幕上: #!/bin/sh for var in A B C ; do echo var is $var done 下面是一个实用的脚本showrpm,其功能是打印一些RPM包的统计信息: #!/bin/sh # list a content summary of a number of RPM packages # USAGE: showrpm rpmfile1 rpmfile
您可能关注的文档
最近下载
- 空巢老人PPT课件.pptx
- 暗黑2 符文之语图文版(按符文等级排列).doc VIP
- 《信息技术(基础模块)上册》 课件 《信息技术(基础模块)上册》 课件 项目一 信息技术应用基础.pptx VIP
- 医院医疗机构医疗垃圾分类与处理培训PPT.pptx VIP
- 股东对赌协议书 股东与股东的对赌协议优秀5篇.pdf VIP
- (2025秋新版)人教版数学三年级上册教学计划.pdf VIP
- (热门!)ISO22000食品安全管理体系认证审核需要准备的文件资料清单和重点关注项(可编辑).pdf VIP
- Unit 5 Celebrations 单元教学课件 中职高一英语高教版基础模块1.pptx
- 施工方案(含工程特点、施工重点与难点及绿色施工).docx VIP
- 2024年秋季学期新精通版(三年级起)英语三年级上册课件 Unit 2 Lesson 2 .pptx VIP
文档评论(0)