shell 条件结构之 if 语句使用总结
文章目录
#条件判断的格式
[ exp ]
[[ exp ]]
test exp
注意: exp 与 “[”、"]"括号之间必须要有空格,否则会报语法错误;
- [ exp ] 与 [[ exp ]]的区别,本文仅讨论[ exp ],而在[[ exp ]]模式下,额外支持指令,但是同样都需要空格;
 - &&、|| 分别作为逻辑与、逻辑或的运算
 - [[ 1 == 1 ]] 结果为真
 
#条件判断的类型
条件判断的类型有三种:整数判断,字符判断,文件判断
条件逻辑表达式:
-a : and 逻辑与
-o : or 逻辑或
! : nor 逻辑非
##整数判断
-eq    #equal                 相等
-ne    #not equal             不相等
-gt    #greater than          大于
-lt    #less than             小于
-ge    #greater or equal      大于或等于
-le    #less or equal         小于或等于
##字符判断
-z         #zero                                   当前字符串是否为空
-n         #not zero                            当前字符串是否不为空
==                                                    两端字符串是否相等
!=                                                     两端字符串是否不相等
>                                                     长度是否大于
<                                                      长度是否小于
注意:“< ”与 “> ”做字符串比较的时候,在[ exp ] 情况下需要需要输入 “<” 或者 “>” 作为转义,或者使用 [[ > exp ]] 模式可以直接使用“< ”与 “> ”作为判断符号使用。
STR1="HELLO"
STR2="HELL"
if [[ $STR1 > $STR2 ]];then
        echo "$STR1 > $STR2"
fi
if [ $STR1 \> $STR2 ];then
        echo "$STR1 > $STR2"
fi
##文件判断
-e     #exit              判断文件是否存在
-f     #if file           判断是否是文件
-d     #dir               判断是否是路径
-r                        判断文件是否可读
-w                        判断文件是否可写
-x                        判断文件是否可执行
-L                        判断文件是否为符号链接
#!/bin/bash
MFILE=123.sh
if [ -f $MFILE -a -x $MFILE ];then
        echo "$MFILE is ok"
fi
if [[ -f $MFILE && -x $MFILE ]];then
        echo "$MFILE is ok"
fi
##条件判断基本结构
if conditions;then
statement1
.......
fi
if conditions;then
statement1
else
statement2
fi
if condition1; then
statement1
elif condition2 ; then
statement2
fi
#总结
条件判断主要有三种格式 test exp,[ exp ],[[ exp ]],其中前二者类似,本文主要讲了 [ exp ];exp 作为条件判断的表达式主要分为三类:
- 数值比较的判断;
 - 文件类型的判断,包括文件类型,路径类型,读写执行属性等;
 - 字符串的比较;
 - exp 中比较重要的是运算符,通用运算符是逻辑运算符包括 -a,-o,!,而对于特定类型的判断,每一种判断类型的运算符都是相对独立使用,无法相互兼容。
 
shell 条件结构之 if 语句使用总结的更多相关文章
- Shell学习(三)——Shell条件控制和循环语句
		
参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...
 - shell的编程结构体(函数、条件结构、循环结构)
		
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 shell函数 在shell中,函数可以被当作命令一样 ...
 - shell条件控制和循环结构
		
一.简介 Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于“当型循环”,而until属于“直到 ...
 - Shell脚本的条件控制和循环语句
		
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
 - shell 条件语句
		
shell 条件语句 #!/bin/bash # 条件语句 NUM1=100 NUM2=200 if (($NUM1 > $NUM2));then echo "$NUM1 greate ...
 - JS流程控制语句 重复重复(for循环)语句结构:  for(初始化变量;循环条件;循环迭代) { 循环语句   }
		
重复重复(for循环) 很多事情不只是做一次,要重复做.如打印10份试卷,每次打印一份,重复这个动作,直到打印完成.这些事情,我们使用循环语句来完成,循环语句,就是重复执行一段代码. for语句结构: ...
 - shell条件测试语句实例-测试apache是否开启
		
终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...
 - 04- Shell脚本学习--条件控制和循环语句
		
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
 - shell 基本结构
		
就像其他的编程语言一样,shell也有三种基本的结构:顺序结构.分支结构.循环结构.顺序结构就是按照命令的出现顺序依次执行,比较简单.如下分别介绍分支结构和循环结构. 分支结构 格式1: if com ...
 
随机推荐
- 安全测试-WEB安全渗透测试基础知识(四)
			
.4. HTTP标准 1.4.1. 报文格式 1.4.1.1. 请求报文格式 <method><request-URL><version> <headers& ...
 - X - Ehab and Path-etic MEXs CodeForces - 1325C
			
MMP,差一点就做对了. 题目大意:给你一个树,对这个树的边进行编号,编号要求从0到n-1,不可重复,要求MEX(U,V)尽可能的小, MEX(x,y)的定义:从x到y的简单路径上,没有出现的最小编号 ...
 - 杭电1080 J - Human Gene Functions
			
题目大意: 两个字符串,可以再中间任何插入空格,然后让这两个串匹配,字符与字符之间的匹配有各自的分数,求最大分数 最长公共子序列模型. dp[i][j]表示当考虑吧串1的第i个字符和串2的第j个字符时 ...
 - vue2.x学习笔记(十二)
			
接着前面的内容:https://www.cnblogs.com/yanggb/p/12592256.html. 组件基础 组件化是vue的一个重要特性,也是vue学习中非常重要的一个知识点. 基础示例 ...
 - 重启mysql服务
			
重启mysql 启动mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo service mysql start 停止mysql: 方式一:sudo /et ...
 - (转)对 Linux 专家非常有用的 20 个命令
			
谢谢你你给了我们在这篇文章前两个部分的喜欢,美言和支持.在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令. 对 Linux 新手非常有用的 20 个命 ...
 - 小白的MyBatis逆向工程
			
MyBatis逆向工程 MyBatis逆向工程,简称MBG.是一个专门为MyBatis框架使用者定制的代码生成器. 可以快速的根据数据库表生成对应的映射文件,接口,以及Bean类对象. 在Myba ...
 - Linux发送邮件命令mail,mutt
			
邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件. 1. Linux发邮件2种常见客户端命令 1.1 mail命令(推荐) 语法: 无邮件正文 mail ...
 - JavaScript HTMlL DOM对象(下)
			
DOM:document operation model 文档操作模型 每个标签都是一个对象. 一.查找元素 DOM 回顾 直接查找 var obj = document.getElementById ...
 - 精确计算微信小程序scrollview高度,全机型适配
			
众所周知,可以滑动的 scroll 组件在移动端非常的重要,几乎每个页面都要用到. 而小程序的 scroll-view 组件就比较坑了,非得指定一个高度才能正常使用.布局复杂的时候谁还给你算高度啊.. ...