版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Shell脚本基础主讲:刘晓涛1第1页,共31页。创建和执行shell脚本使用echo命令显示消息创建变量使用本地和全局变量计算表达式使用if构造执行基于条件的shell脚本使用case构造执行基于条件的shell脚本识别用于执行重复任务的while、for、和until构造在shell脚本中使用break和continue语句控制进程的执行计算命令的开始到结束之间的时间议程2第2页,共31页。Shell图示3第3页,共31页。Shell脚本如果你有一系列经常使用的Linux命令,你可以把它们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件执行shell脚
2、本要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写它为了使用bash shell来执行脚本magic,其命令是:$ bash magic 或 $ ./magic$为终端提示符(普通用户)概述4第4页,共31页。echo命令 用于在屏幕上显示消息$ echo This is an example of the echo command这是echo命令的一个例子概述5第5页,共31页。# 符号 用于在shell脚本中可以包含注解入口echo “Hello”# This is a comment line. This would not produce any outputech
3、o “world”这个例子中,第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息概述6第6页,共31页。创建变量可以在任何时间通过简单的赋值来创建。 语法=Linux中的所有变量都被当作字符串。引用变量$符号用于引用一个变量的内容variable1=$variable2变量7第7页,共31页。读入值给变量在执行shell脚本时,shell还允许用户从键盘中输入一个值给变量。可以使用read命令来做$ read fname8第8页,共31页。局部变量当引用shell时,只有创建它的shell能够知道到变量的存在全局变量称为子shellshell中创建的变量局部于创建它的shell,
4、除非使用export命令特别指出是全局的环境变量通过改变这些变量的值,用户能够定制此环境本地和全局 Shell 变量9第9页,共31页。环境变量(续)一些环境变量的例子是HOME, PATH, PS1, PS2, LOGNAME, SHLVL, 及SHELLHOME变量Linux系统中的每个用户都有一个相关的称作HOME的目录当一个用户登录后,进入相应的HOME的目录$ echo $HOME 本地和全局 Shell 变量(续)10第10页,共31页。环境变量(续)PATH变量包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索PS1变量PS1(Prompt String 1)变量包含了sh
5、ell提示符,$符号$ PS1=HELLOHELLONew prompt本地和全局 Shell 变量(续)11第11页,共31页。环境变量(续)PS2变量是为第二个提示符设置值的环境变量LOGNAME变量包含用户的注册名字$ echo “$LOGNAME”SHLVL变量该变量包含你当前工作的shell level本地和全局 Shell 变量(续)12第12页,共31页。环境变量(续)SHELL变量环境变量存储了用户的缺省shellenv命令可用来查看所有的已移出的环境变量表和它们各自的值本地和全局 Shell 变量(续)13第13页,共31页。在单个命令行中使用多个命令的另一种方法(非Pipe
6、s)是通过命令替换echo The date is date”expr命令用于求值算术表达式。该命令的输出被发送到标准输出$ expr 4 + 5 将在屏幕上显示9命令替换14第14页,共31页。算术展开:你可以在$( )中括一个表达式,用下面的命令来计算它的值:$(expression)命令替换(续)15第15页,共31页。编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。所有未应答的询问的总数=所有询问的总数-应答的询问的数量echo Please enter the total number o
7、f queries reported today.read totalqueriesecho Please enter the number of queries answered.read answeredpending=$(totalqueries-answered)echo Number of calls pending = $pending“chmod +x callpending Example116第16页,共31页。test 和 命令求值表达式,并返回true (0)或 falseif构造Linux shell提供了循环和判定的构造,可以在shell脚本中使用算术测试结合if构造
8、,它可用于测试变量的数字值条件执行17第17页,共31页。串测试test命令也可用于字符串文件测试test命令也可用于检查文件的状态exit命令用于终止shell脚本的执行并返回到$提示符下条件执行(续)18第18页,共31页。test测试命令1 -eq:等于则为真-ne:不等于则为真-gt:大于则为真-ge:大于等于则为真-lt:小于则为真-le:小于等于则为真数值测试 19第19页,共31页。test测试命令2=:等于则为真!=:不相等则为真-z字符串:字符串长度为零则为真-n字符串:字符串长度不为零则为真字符串测试20第20页,共31页。test测试命令3-e文件名:如果文件存在则为真-
9、r文件名:如果文件存在且可读则为真-w文件名:如果文件存在且可写则为真-x文件名:如果文件存在且可执行则为真-s文件名:如果文件存在且至少有一个字符则为真-d文件名:如果文件存在且为目录则为真-f文件名:如果文件存在且为普通文件则为真-c文件名:如果文件存在且为字符型特殊文件则为真-b文件名:如果文件存在且为块特殊文件则为真-a 并且 o 或者 ! 非文件测试21第21页,共31页。#!/bin/bashecho Enter the percentage of calls answered same day.read actualif $actual -le 80 then echo Your
10、 Grade is Average.elif $actual -gt 80 -a $actual -le 90 then echo Your Grade is Good.else echo Your Grade is Outstanding.fiExample222第22页,共31页。shell脚本中使用的这个构造依据变量的值而执行一组特定指令当变量的值和其中一个指定的值相匹配时,就执行写在该值下的一组命令caseesac 构造23第23页,共31页。#!/bin/bashecho List of Services Offered by Diaz Telecommunications echo
11、 1) Global Roamecho 2) V-mailecho 3) Mail on Moveecho 4) Caller-IDecho 5) Dial a Pizzaecho n Select the service for which you need more information 1-5 : read choicecase $choice in1) echo You just need one cell-phone number wherever you travel across the world. ;2) echo You can record your messages
12、when you are not able to take a call.;3) echo You can receive e-mail messages on your cell-phone.;4) echo You can display the callers telephone number on your handset screen whenever you receive a call so that you know whos calling.;5) echo You can order for pizza from your cell-phone.;*) echo You h
13、ave selected an invalid option.;esacExample324第24页,共31页。while构造while dodone只有条件为真时,就执行do和done之间的命令 until构造until循环构造的求值模式于while循环相反。until循环将继续执行直到求值的条件为真。迭代25第25页,共31页。for构造for variable_name in dodonefor循环取一列值作为输入并对循环中每个值执行循环break和continue命令break命令引起终止循环continue命令的使用将强迫一个新的重复迭代(续)26第26页,共31页。#!/bin/b
14、ashecode=1000while $ecode -le 1008 do echo Enter data for the employee with Employee Code = $ecode echo -n Employee Name : read name echo -n Email Address : read email echo -n Telephone Number : read telno echo $ecode : $name : $email : $telno ccemployee(ecode=$ecode+1)doneExample427第27页,共31页。请求后台处理用于请求后台进程的符号是(&)$ wc tempfile & 1 2082 $ vi newfile检查后台进程Ps(进程状态)命令为每个当前活动的每个进程产生一行入口。控制进程的执行28第28页,共31页。终止后台进程可用kill命令,如下所示$ kill 278查看完成一个命令所花的时间你可以使用time命令来查看一个命令从开始到结束所花的时间。$ time find /etc -name passwd 2 /dev/null控制进程的执行(续)29第29页,共31页。垂直条 (|) 是管道字符它指示shell :| 前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考试题(全国一卷)-数学+答案
- 医院会诊管理制度
- 品牌设计项目式教程课件 项目1 初识品牌设计
- 2027备考山东名校联盟2026届高三5月核心素养评估语文试题及参考答案
- 丰镇市丰隆加油加气站项目水土保持方案报告表
- 泾源县万合100MW-400MWh共享储能示范项目配套外送线路工程水土保持报告表
- 中山大学珠海校区核技术利用重新报批项目环境影响报告表
- 网络基础及其安全 6
- 国际市场跨境电商税务咨询协议
- 2026辅导员结构化面试题目及答案
- 风电机组塔筒防腐方案
- 高标准农田监理规划
- 2025年山东省高考数学试卷(含答案及解析)
- 江苏省泰州市初二学业水平地理生物会考考试题库(含答案)
- 2025版美国糖尿病学会妊娠期高血糖诊治指南课件
- 【道德与法治】薪火相传的传统美德课件-2025-2026学年统编版道德与法治七年级下册
- 协助老年人翻身课件
- 200MWh储能电站项目施工现场管理方案
- 2026年广东高考物理试卷及答案
- 2025新疆天泽水利投资发展有限公司及所属二级企业部分岗位社会招聘45人笔试备考重点试题及答案解析
- 安全环保先进班组申报材料
评论
0/150
提交评论