- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IT培训知识必备:详细介绍Linux shell脚本基础学习(三)
详细介绍Linux shell脚本基础学习(三)Linux shell脚本基础学习第三讲,前面我们介绍shell命令和流程控制时,由于篇幅没能讲流程控制,今天流程控制我们这里也只是介绍前面三各部分 if??case 和 select。后面还有三个部分内容只能在Linux shell脚本基础学习第四讲中介绍了。1.1.5 Shell命令和流程控制(2)3) 流程控制1.ifif 表达式 如果条件为真则执行then后面的部分:if ....; then....elif ....; then....else....fi大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…通常用 [ ] 来表示条件测试。注意这里的空格很重要。要确保方括号的空格。[ -f somefile ] :判断是否是一个文件[ -x /bin/ls ] :判断/bin/ls是否存在并有可执行权限[ -n $var ] :判断$var变量是否有值[ $a = $b ] :判断$a和$b是否相等执行man test可以查看所有测试表达式可以比较和判断的类型。直接执行以下脚本:#!/bin/shif [ $SHELL = /bin/bash ]; thenecho your login shell is the bash (bourne again shell)elseecho your login shell is not bash but $SHELLfi变量$SHELL包含了登录shell的名称,我们和/bin/bash进行了比较。快捷操作符熟悉C语言的朋友可能会很喜欢下面的表达式:[ -f /etc/shadow ] echo This computer uses shadow passwors这里 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。您也可以认为是逻辑运算中的与操作。上例中表示如果/etc/shadow文件存在则打印” This computer uses shadow passwors”。同样或操作(||)在shell编程中也是可用的。这里有个例子:#!/bin/shmailfolder=/var/spool/mail/james[ -r $mailfolder ] { echo Can not read $mailfolder ; exit 1; }echo $mailfolder has mail from:grep ^From $mailfolder该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的From 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:-打印错误信息-退出程序我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。不用与和或操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。2.casecase :表达式可以用来匹配一个给定的字符串,而不是数字。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/shftype=`file $1`case $ftype in$1: Zip archive*)unzip $1 ;;$1: gzip compressed*)gunzip $1 ;;$1: bzip2 compressed*)bunzip2 $1 ;;*) echo File $1 can not be uncompressed with smartzip;;esac您可能注意到我们在这里使用了一个特殊的变量$1。该变量包含了传递给该程序的第一个参数值。也就是说,当我们运行:smartzip articles.zip$1 就是字符串 articles.zip3. selsectselect 表达式是一种bash的扩展应用,尤其擅长于交互式使用。用户可以从一组不同的值中进行选择。select var in ... ; dobreakdone.... now $var can be used ....下面是一个例子:#!/bin/shecho What is your favourite
您可能关注的文档
- 2013年石家庄一模理科数学试题及答案.docx
- 2014届高考数学(理)一轮复习单元训练:立体几何(二)(人教A版).doc
- 20150916棠下被施魔法“脏乱差”变“白富美”.docx
- 2014-2015学年河北省衡水中学高三(上)第五次调考数学试卷(理科)_70.doc
- 2014年北京中考说明词语表2.doc
- 2011年湖南高考文科数学(答案与试题分排版).doc
- 2015届高三文科数学月考试题.doc
- 2013六盘水市实验一中青年教师技能大赛高中数学及答案.doc
- 2014全国统一高考数学真题及逐题详细解析(文科)—广西卷.doc
- 2015年4月广西玉林市贵港市高中毕业班联合考试文综政治试题(word).doc
- 中国熔盐储能行业市场全景评估及发展战略规划报告.docx
- 2025年中国铸铜市场全景评估及投资规划建议报告.docx
- 2025年中国适配器电源行业发展监测及发展趋势预测报告.docx
- 中国石材石料行业发展潜力预测及投资战略研究报告.docx
- 2025年电力自动化项目建设总纲及方案.docx
- 2025年中国金属镁行业发展趋势预测及投资战略咨询报告.docx
- 中国镀合金行业市场深度分析及发展潜力预测报告.docx
- 2025年中国稀土Y型分子筛行业市场调研分析及投资战略咨询报告.docx
- 中国铝钛硼合金行业市场运行现状及投资战略研究报告.docx
- 2025年中国沈阳市天然气市场全面调研及行业投资潜力预测报告.docx
文档评论(0)