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 ...
随机推荐
- sqlserver2008 服务器实例连接
一.sqlserver 配置管理器里面,看sqlserver服务那个,如果只有一个mssqlserver,那就用local或者.来访问,如果不是,可能有命名实例.
- Python - 利用词云wordcloud,jieba和中国地图制作四大名著的热词图
热词图很酷炫,也非常适合热点事件,抓住重点,以图文结合的方式表现出来,很有冲击力.下面这段代码是制作热词图的,用到了以下技术: jieba,把文本分词 wordcloud,制作热图 chardet,辨 ...
- bugku ctf 逆向题
1.逆向入门 2.Easy_vb 直接找出来. 3.easy_re 4.游戏过关 摁着嗯着就出来了... 5.Timer{阿里ctf} apk文件,不会搞. 6.逆向入门 发现是base64,直接转图 ...
- PHP 语法字符串函数 strcmp、strlen 使用及实现
说明 这里基于 php7.2.5 进行测试,php7 之后内部结构变化应该不是太大,但与 php5.X 有差别. 函数分类 用户自定义函数 say(); function say() { echo & ...
- tensorflow1.0 变量加法
import tensorflow as tf state = tf.Variable(0,name='counter') print(state.name) one = tf.constant(1) ...
- MySQL优化之COUNT(*)效率(部分转载与个人亲测)
说到MySQL的COUNT(*)的效率,发现越说越说不清楚,干脆写下来,分享给大家. COUNT(*)与COUNT(COL)网上搜索了下,发现各种说法都有:比如认为COUNT(COL)比COUNT(* ...
- PHPSTORM快捷键On Mac
Command+Shift+O快捷定位文件,需要输入文件名称 Command+鼠标左键点击方法,快捷转到方法实现 Command+Option+方向左键,快捷返回上一步跳转方法之前 Shift+F6统 ...
- [函数] PHP取二进制文件头快速判断文件类型
一般我们都是按照文件扩展名来判断文件类型,但其实不太靠谱,因为可以通过修改扩展名来伪装文件类型.其实我们可以通过读取文件信息来识别,比如 PHP扩展中提供了类似 exif_imagetype 这样的函 ...
- 第九次-DFA最小化,语法分析初步
1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.自上而下语法分析,回溯产生的原因是什么? 4.P100 练习4,反复提取 ...
- 我们常听到的WAL到底是什么
什么是 WAL WAL(Write Ahead Log)预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性. 在计算机科学中,预写式日志(Write-ahead logging, ...