网站大量收购独家精品文档,联系QQ:2885784924

Shel编程基础.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shel编程基础

# 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: showr

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档