Shell脚本(条件测试&IF判断)——理论篇2

Shell脚本理论篇2——条件测试&IF判断

条件测试

上一篇博客我们提到了预定义变量中有个$?变量用于判断命令是否执行成功。那么如何使用呢?

这时候就需要专门的测试工具——test命令,对特定条件进行测试,并使用$?对返回值进行判断,其命令形式如下:

test 条件表达式

&

[ 条件表达式 ] //更为常用

注意: 中括号“[”和“]”与条件表达式之间均需要使用空格隔开,否则会出现错误!!

一、文件测试

格式:

[ 操作符 文件或目录 ]

常用操作符:

-d: 测试是否为目录

-e: 测试文件/目录是否存在

-f: 测试是否为文件

-r: 测试当前用户是否拥有读取权限

-w: 测试当前用户是否拥有写入权限

-x: 测试当前用户是否拥有执行权限

使用方法:

二、整数值测试

格式:

[ 整数1 操作数 整数2 ]

常用操作符

-eq: 等于

-ne: 不等于

-gt: 大于

-lt: 小于

-le: 小于等于

-ge: 大于等于

使用方法:

三、字符串测试

格式:

[ 字符串1 操作符 字符串2 ]

[ -z 字符串 ] //判断字符串内容是否为空

常用操作符:

=: 字符串内容相同

!=: 字符串内容不同

使用方法:

四、逻辑测试

格式:

[ 表达式1 ] 操作符 [ 表达式2 ]

&

命令1 操作符 命令2

常用测试符:

-a或&&: 逻辑与,“而且”的意思

-o或||: 逻辑或,“或者”的意思

!: 逻辑否,结论取反

使用方法:

IF语句判断

单分支结构

格式:

if 条件测试操作

? then 命令序列

fi

结构流程图:

双分支结构

格式:

if 条件测试操作

? then 命令序列1

? else 命令序列2

fi

结构流程图:

多分支结构

格式:

if 条件测试操作1

? then 命令序列1

elif 条件测试操作2

? then 命令序列2

else 命令序列3

fi

结构流程图:

未完待续~~~~

原文地址:https://blog.51cto.com/14484404/2440296

时间: 2024-11-20 21:32:59

Shell脚本(条件测试&IF判断)——理论篇2的相关文章

shell脚本的测试与判断的基础实施

一.条件测试:判断条件是否成立 1.条件测试的类型:文件测试:整数比较:字符串比较:逻辑测试 2.条件测试的语法:[ 操作符  条件表达式]等于 test  操作符  条件表达式 3.文件测试: 1)文件的类型:-(普通文件),d(里面),c(字符设备),s(套接字).b(块设备).p(管道文件,可以用于屏幕演示) 2)文件判断符:-f  文件,-d目录,-e文件是否存在,-rwx判断是否有权限  [操作符  文件] 4.整数比较 1)语法:[ 数字1   操作符  数字2] 2)操作符:-eq

shell脚本条件测试与比较

1.条件测试常用语法 test 测试表达式 利用test命令进行条件测试表达式,test命令与测试表达式之间至少有一个空格 [ 测试表达式 ] 通过[ ]中括号进行条件测试表达式,[]中括号边界与测试表达式之间至少有一个空格 [[ 测试表达式 ]] 通过[[ ]]双中括号进行条件测试表达式,[[ ]]双中括号与测试表达式之间至少有一个空格 ((测试表达式)) 通过(( ))双小括号进行条件测试表达式,( ))双小括号两端不需要空格,常用于整数对比 说明: 双中括号[[ ]]中可以使用通配符进行匹

Shell脚本---条件判断

面向过程     顺序执行     选择执行:if;case     循环执行:for;while;until   循环需有退出条件 选择执行(选择执行的前提,就是条件测试)    条件测试方式(测试条件)     bash命令测试          bash命令有命令执行状态返回值          $?:用于上一条执行的命令状态返回值          0:成功执行          1-255:失败          可以使用exit命令,在脚本中自定义脚本状态返回值,如果不定义,脚本的状

Linux | shell脚本-条件判断if和循环语句for

一.简介 上个章节中,我们学习了判断语句和运算语句.shell脚本中,这些判断语句一般都是和if.else.elif.for和while等语句一起使用. 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令. 二.shell条件判断语句:if 1.流程控制:if单分支结构 语法: if 条件判断:then 条件判断成功时执行的操作 ... fi 例子: 结合整数值比较-eq:检查主机是否在线 vim test1.sh运行结果:2.流程控制:if双分支结构 语法: i

shell里的条件测试和判断

条件测试: 判断某需求是否满足,需要由测试机制来实现: 如何编写测试表达式以实现所需的测试: (1) 执行命令,并利用命令状态返回值来判断: $?:命令状态返回值 0:成功 1-255:失败 (2) 测试表达式 test  EXPRESSION [ EXPRESSION ] [[ EXPRESSION ]] 注意:EXPRESSION两端必须有空白字符,否则为语法错误: 示例: [[email protected] tmp]# touch a [[email protected] tmp]# [

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

[转]如何进行SHELL脚本正确性测试

在实际工作中,需要对shell脚本进行正确性测试. 如何用最快最有效的方式进行测试? 很多开发的习惯是,二话不说,写完/拿到,就跑一把,看看输入,输出,想要的操作是否完成,也就过了. 其实这是十分不严谨的,若是未经过QA,风险还是相当大的. 以下即shell脚本测试流程,仅供参考 1.代码走读: 写完,或者拿到一个shell脚本,不必急于运行,虽然实践是检验整理的唯一标准,但是,在读代码这个过程中,可以规避很多低级的bug. 读什么? A.代码逻辑,这个脚本用来做什么,主要分为多少步,分别做了什

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

shell脚本进阶之循环判断

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 14.0pt; font-family: 等线 } h1 { margin-top: 15.6pt; margin-right: 0cm; margin-left: 0cm; margin-bottom: .0001pt; text-align: justify; line-he