02_Shell控制语句.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
02_Shell控制语句

掌握if表达式 掌握case表达式 掌握select表达式 掌握循环表达式 if表达式 循环表达式 if表达式 格式: if ....; then .... elif ....; then .... else .... fi 功能: 如果条件为真则执行then后面的部分,否则执行else后面部分 条件测试 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等… 通常用 [ ] 来表示条件测试。注意这里的空格很重要。要确保方括号和条件之间的空格。 判断用户当前shell 快捷操作符 可以使用下面的表达式代替简单的if表达式: 这里 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。 上例中表示如果/etc/shadow文件存在则打印” This computer uses shadow passwors”。 快捷操作符 同样或操作(||)在shell编程中也是可用的。这里有个例子: 该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的From 一行。如果不可读则或操作生效,打印错误信息后脚本退出。 case表达式 case案例 select 表达式 select 表达式是一种bash的扩展应用,尤其擅长于交互式使用。用户可以从一组不同的值中进行选择。格式如下: select var in ... ; do break done .... now $var can be used .... while表达式 while表达式格式如下: while ...; do .... done while-loop 将运行直到表达式测试为真。 关键字break 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。 for表达式 for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量: for var in ....; do .... done for表达式格式2 和C语言中类似: for (( 变量初始化; 条件判断; 变量自变 )); do 一些命令; done; 注意:是用两个括号。 根据参数指定的目录,编写shell程序,统计该目录下所有*.c,*.cpp和*.h文件的行数,并写入到~/codeline.txt文件中。若该目录下的源代码无法通过编译,则统计结果为0。 Shell控制语句 本章目标 重点难点 #!/bin/sh if [ $SHELL = /bin/bash ]; then echo your login shell is the bash else echo your login shell is not bash but SHELL fi #!/bin/sh [ -f /etc/shadow ] echo This computer uses shadow passwors #!/bin/sh mailfolder=/var/spool/mail/james [ -r $mailfolder ]||{ echo Can not read $mailfolder ; exit 1; } echo $mailfolder has mail from: grep ^From $mailfolder case表达式可以用来匹配一个给定的字符串,而不是数字。 case ... in ...) do something here ;; esac 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,还记得$1的意义吗? #!/bin/sh echo What

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档