编写Linux的shell脚本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

首页
分支结构
1 if结构 if结构
if结构是一种最简单、最基本的控制结构,根据对条 件的判断来决定是否执行一组命令。语法格式如下: if 表达式 then 命令语句块 fi 该语句首先执行“表达式”,并检查它的终止状态。如果 “表达式”返回的值为真,那么执行“命令语句块”;否 则退出if语句。
首页
首页
变量
3 env命令 env命令
env命令的功能是显示当前环境或为命令的执行设置 环境。语法结构如下: ( ( 1) 2) 显示多个环境变量 显示单个环境变量
env [ -i | - ] [Name=Value ]... [Command [ Argument ... ] ] = env [name]
首页
循环结构
break与continue命令 break与continue命令 break和continue是无条件控制语句。break 用于立即终止当前循环的执行,continue用于不 执行循环中后面的语句而立即开始下一个循环的 执行。这两个语句只有放在do和done之间才有效。 continue命令用来从while循环的开头重新开 始执行循环体。如果在循环里面,某个条件符合 了,用户想跳过余下的命令而从头开始执行 while结构,可以使用continue命令。
首页
实现功能强大的自动化处理
anacron
anacron 是和 cron 相似的任务调度器,只不过它并 不要求系统持续运行。它可以用来运行通常由 cron 运行 的每日、每周和每月的作业。 要使用 anacron 服务,你必须安装了 anacron RPM 软件包,而且 anacron 服务必须正在运行。要判定该软 件包是否被安装,使用 rpm -q anacron 命令。要判定该 服务是否在运行,使用 /sbin/service anacron status 命令。 anacron 任务被列在配置文件 /etc/anacrontab 中。文 件中的每一行都代表一项任务,格式是: period delay job-identifier command
分支结构
3 case…esac命令 case esac命令 esac
case…esac为条件选择语句。case条件选择为用户 提供了根据字符串或变量的值从多个选项中选择 一项的方法,起格式见书。
首页
循环结构
1 while结构 while结构
while循环结构是用命令的返回状态值来控制循环的 while循环的一般格式为: while <条件表达式> do 命令表 done 该语句在执行前,先判断“条件表达式”。如果“条件表 达式”的返回值为真,则进入循环体,执行命令表。执行 完毕后,再次对“条件表达式”的返回值进行测试,如果 为真就继续执行,如果为假,则跳出循环。退出循环后的 返回值为最后一次命令表执行后的返回值。
首页
运算表达式
⒊ 文件测试 常用的命令格式为: test <选项> 文件名字符串 4.逻辑运算符 前面提及的三个方面是关系运算,而有时,在测试语句中 可能有两个或多个关系运算,这就需要用逻辑运算符将这 些关系运算相关联起来。与其他语言的逻辑运行符一样, 这里也有与、或、非逻辑运算符。 -a:表示“与”运算 –o:表示“或“运算 !:表示“非”运算 其优先级为:“!”最高,“-a”次之,“-o”最低。
首页
循环结构
3 for结构 for结构
for循环对一个变量的可能的值都执行一个命令序列。赋 给变量的几个数值既可以在程序内以数值列表的形式提供, 也可以在程序以外以参数的形式提供。For循环的一般格 式为: for 变量名 [in 变量表] do 命令表 done 变量名是用户所使用的循环变量的名字。变量表中存 放的是变量的取值范围,同时也决定了循环执行的次数 (如果执行中不退出的话)。
首页
实现功能强大的自动化处理
cron
cron 是一个可以用来根据时间、日期、月份、星期 的组合来调度对重复任务的执行的守护进程。 cron 假定系统持续运行,如果当某任务被调度时系统不再 运行,该任务就不会被执行。要根据时间段而非确切时间 来配置任务。 要使用 cron 服务,必须安装 vixie-cron RPM 软件 包,而且必须正在运行 crond 服务。要判定该软件包是 否已安装,使用 rpm -q vixie-cron 命令。要判定该服 务是否在运行,使用 /sbin/service crond status 命令。
首页
4源自文库
shell脚本里的参数处理 shell脚本里的参数处理
参数用来把值从命令传递给Shell脚本,参数 (paramerter)是任何单词(通常是文件名)或 字符串,它在Shell提示符后跟命令或文件名一 起给出。在脚本里,参数被称为argument。 参数主要是用来创建通用的Shell脚本。
首页
首页
变量
2 局部与全局变量
Linux Shell与其他程序设计语言变量一样,Shell 变量也有其作用范围。Shell变量分为局部变量和全局变 量。局部变量的作用范围仅仅限制在其命令行所在的 Shell 或 Shell 脚 本 中 。 全 局 变 量 的 作 用 范 围 则 包 括 本 Shell进程及其所有子进程,即贯穿于整个当前用户环境。 在一个Shell里创建的变量是该Shell的局部变量,除 非被用export命令将它指定为全局变量。
首页
运算表达式
算术运算表达式
在Liux Shell脚本编写过程中,“算术表达式”可以由运 算符+、-、*、/、=组成的一个表达式。这里的乘(*)、 除(/)运算符前不需要添加反斜杠(/)。其语法格式如下: $((算术表达式)) 由于这个算术运算表达式不是命令语句,如果需要其输出 结果,则还要添加一个命令。比如: echo $((123+435))
分支结构
当然,如果表达式执行完毕后返回值为假,则判断条件不成立, 将要退出if语句。如果用户希望转而执行其他命令表,if语句的完整 结构可以帮助做到这一点。和if语句的普通结构相比,完整结构只是 多了else。该语句的功能是:如果表达式返回值为假,转向else后的 命令表。if语句的完整结构如下: if 表达式 then 命令表1 命令表1 else 命令表2 命令表2 fi 该语句先执行表达式,根据表达式执行完毕的返回值做出控制判断: 如果返回值为真,执行命令表1;否则执行命令表2。
编写Linux shell脚本 Linux的 第5章 编写Linux的shell脚本
本章主要内容: 本章主要内容: 变量 运算表达式 分支结构 循环结构 shell脚本里的参数处理 实现功能强大的自动化处理
首页
变量
Linux Shell与与其他程序设计语言一 样,允许定义和使用变量,Shell支持具有 字符串值的变量。 变量(variables),用来存储信息的 内存单元,是可存放数据的识别符。
首页
实现功能强大的自动化处理
at
cron 和 anacron 被用来调度重复的任务,at 命令 被用来在指定时间内调度一次性的任务。 要使用 at 或 batch 命令,你必须安装了 at RPM 软件包,并且 atd服务必须正在运行。要判定该软件包是 否被安装,使用 rpm -q at 命令。要判定该服务是否正 在运行,使用 /sbin/service atd status 命令。 要在某一指定时间内调度一项一次性作业,键入 at time 命令。这里的 time 是执行命令的时间。
首页
循环结构
2 until结构 until结构
until命令是另一种循环结构,它和while命令相似,其格式如下: until <条件表达式> do 命令表 done until循环和while循环的区别在于:while循环在条件为真时继 续执行循环,而until则是在条件为假时,继续执行循环。 在执行命令表之前,系统先执行表达式,并查看该表达式的返 回值是否为真。如果为真,则结束循环语句,返回命令表中最后一条 命令的返回值;如果为假,则执行循环体,直到表达式的测试值为真 为止。until循环语句特别适合那些等待特殊事件发生的程序。
首页
运算表达式
关系与逻辑表达式
test与[ ]都是一种测试条件语句命令。通过这两个 命令表达式,返回逻辑值,即true(0)或false(1)。test 和[ ]可以相互替换。两个命令的语法如下: test 关系表达式 [ 关系表达式 ] “关系表达式”是这两个条件测试语句的命令参数。当条件 表达式的值为真时,返回状态值零;当条件表达式的值为 假时,返回非零的状态值。
首页
分支结构
2 if语句嵌套与elif语句 if语句嵌套与elif语句 语句嵌套与elif
当在Shell程序中出现多种情况要进行处理的时候,则一个if语句就不能满足要 求了,这里提供了一个if语句中嵌入另外一个完整的if语句,来实现多种情况的分选。 其语法格式如下: 表达式1 if <表达式1> then 命令语句 表达式2 if <表达式2> then 命令语句块 else 命令语句块 fi else 表达式3 if <表达式3> then 命令语句块 else 命令语句块 fi 首页 fi
首页
运算表达式
条件测试语句可以进行数值、字符和文件三种不同类型关系运 算表达式和相应的逻辑运算表达式的测试,其主要运算符和相应的功 能有以下几种。 ⒈ 数值测试 命令格式为: test num_1 <选项> num_2 ⒉ 字符串测试 字符串测试中,常用的选项有以下几个: =: 用于比较两个字串是否相同,相同则为真。 !=:用于判断两个字符串不相同,不相同则为真。 -z:用于判断一个字符串长度为0,该字符串长度为0则为真。 -n:用于判断一个字符串长度不为0,该字符串长度不为0则为真。 双目运算示例:test “$var1” = “$var1” ,结果为真。
首页
实现功能强大的自动化处理
batch
batch 命令被用来在系统平均载量降到 0.8 以下时 执行一次性的任务。 如果这组命令或脚本试图在标准输出中显示信息,该 输出会用电子邮件方式被邮寄给用户。 要查看等待运行的 at 和 batch 作业,使用 atq 命 令。它显示一列等待运行的作业,每项作业只占据一行。 每一行的格式都是:作业号码、 日期、小时、作业类别、 以及用户名。用户只能查看他们自己的作业。如果根用户 执行 atq 命令,所有用户的全部作业都会被显示。
实现功能强大的自动化处理
在 Linux 中,任务可以被配置在指定的时间 段、指定的日期、或系统平均载量低于指定的数 量时自动运行。Red Hat Linux 预配置了对重要 系统任务的运行,以便使系统能够时时被更新。 譬如,被 locate 命令使用的 slocate 数据库 每日都被更新。系统管理员可使用自动化的任务 来执行定期备份、监控系统、运行定制脚本等等。 Red Hat Linux 随带四个自动化任务的工具:cron、 anacron、at和 batch。
首页
变量
1 设置变量
Shell变量通过赋值语句完成变量定义与赋值。在Linux Shell 中,变量有多种,我们可以分为以下几种: ● 用户变量 ● 系统变量 ● 特殊变量 在Linux Shell的实际使用过程中,设置变量一般有以下几种方式: ● 直接设置变量值 ● 变量之间的置换 ● 从命令行参数获取 ● 从环境变量获取 ● 用户输入 从上面几种方式我们可以知道变量的获取是多元化的,获取变 量 后 , 我 们 怎 样 使 用 呢 ? 在 命 令 行 或 Shell 脚 本 文 件 中 使 用 $variables的形式引用变量variables的值。
env 命令允许您显示当前环境或者在一个被改变环境 下运行一个指定的命令。如果没有标志或者参数被指定, env 命令会显示您的当前环境。
首页
运算表达式
expr命令 expr命令
expr命令的功能是求解表达式的值。语法结构如下: expr expression expr命令读入 expression参数,计算它的值,然后将结果写入 到标准输出。 对于expression参数,应注意以下几点: 1· 用空格隔开每个项,即命令、操作数、操作符均用空格隔开。 2· 用 \ (反斜杠) 放在 Shell 特定的字符前面。 3· 对包含空格和其他特殊字符的字符串要用引号括起来。 注意: 注意:expr命令返回一个 0 来指示一个零值,而不是空字符串。
相关文档
最新文档