shell中的条件表达式
条件表达式返回的结果都为布尔型
真为1,假为0
条件测试的表达式
[expression]
[[expression]]
test expression
这三种条件表达式的效果是一样的
比较符
整数比较
-eq:比较两个整数是否相等,$A -eq $B
-ne:测试两个整数是否不等,不等则为真,等则为假
-gt:大于为真,小于为假
-lt:小于为真,大于为假
-ge:大于或者等于
-le:小于或者等于
-e File 测试文件是否存在
-f File 测试文件是否是普通文件
-d File 测试指定路径是否是目录
-r File 测试文件是否有写的权限
-w File 测试文件是否有写的权限
-x File测试文件是否有执行的权限
-z:判断指定的变量是否存在值
-n:测试字符是否为空 非空为真(0)
-s:文件的大小非0时为真
!:逻辑非
双目:
== 相等为真
!= 不等为真
> 大于为真
< 小于为真
-a:逻辑与 都为真才为真
-o:逻辑或 一个为真就为真
test expression
expression为条件表达式
if test (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式2 两个表达式都为真
test 表达式1 –o 表达式2 两个表达式有一个为真
摩根定律
!(A -a B)= !A -o !B
!(A -o B)= !A -a !B
逻辑符
&&:逻辑与,都为真则为真
如果第一个条件是真的,需要对第二个条件进行判断
如果第一个条件是假的,不需要对第二个条件进行判断,结果已经确定为假。
||:逻辑或,一个为真则为真
当第一个条件为真的时候,不在去判断第二条件,因为第一个表达式已经决定了整个表达式为真
只有当第一个表达式为假的时候才回去判断第二个表达式
应用于脚本:
这是一个用来比较两个整数大小的脚本
#!/bin/sh read -p "Pls input two nums:" a b [ -z $a ] || [ -z $b ] && {echo "Pls input two nums"exit 1 }expr $a + 1 &>/dev/null RETRAVL1=$?expr $b + 1 &>/dev/null RETRAVL2=$?test $RETRAVL1 -eq 0 -a $RETRAVL2 -eq 0||{echo "Pls input two nums"exit 2 }[ $a -lt $b ] && echo "$a < $b"[ $a -eq $b ] && echo "$a = $b"[ $a -gt $b ] && echo "$a > $b"
[root@BASE scripts]# sh var.sh
Pls input two nums:1 2
1 < 2
[root@BASE scripts]# sh var.sh
Pls input two nums:2 1
2 > 1
[root@BASE scripts]# sh var.sh
Pls input two nums:1 1
1 = 1
[root@BASE scripts]# sh var.sh
Pls input two nums:a
Pls input two nums
[root@BASE scripts]# sh var.sh
Pls input two nums:1
Pls input two nums
[root@BASE scripts]# sh var.sh
Pls input two nums:1 2 3
说明:一下是学习shell的时候练习的小脚本,其中也包含了一些条件判断的语句,因为刚学,写的比较烂,众网友不看也罢。
注:该脚本用于测试某目录下的某文件是否存在#!/bin/sh Path=/server/scripts File=test.shif [ ! -d $Path ] thenecho "No such dir,is creatinig $Path"mkdir $Path -p fiif [ ! -f $Path/$File ] thenecho "No such file,is creating $File"touch $Path/$Fileexit 0 fiecho "ls -l $Path/$File" ls -l $Path/$File ~ 另一种写法;
#!/bin/sh
Path=/serer/scripts
File=test.sh
if [ ! -e $Path/$File ]
then
echo "No such file or directory.is creating......"
mkdir -p $Path &>/dev/null
touch $Path/$File
exit 0
fi
echo $(ls -l $Path/$File)
内存小于400M就报警的shell脚本
#!/bin/sh LeftMem=`free -m|grep "Mem"|tr -s " "|cut -d" " -f4` //free -m 以兆为单位显示if [ $LeftMem -lt 400 ] thenecho "mem is not enough" |mail -s "mem warninig at $(date +%F-%X)" 18348087798@163.com //要先安装sendmail fi
转载于:https://www.cnblogs.com/along1226/p/4957148.html
shell中的条件表达式相关推荐
- 在Java语言的if语句是什么表达式,if语句中的条件表达式中只能使用
if语句中的条件表达式中只能使用关系或逻辑表达式吗?别的人十句话都不会伤到小编,但你的一句话就可以把小编伤得撕心裂肺. 不是,可以用任意表达式. if语句是指编程语言(包括c语言,C#,,java,V ...
- shell中if条件字符串、数字比对,[[ ]]和[ ]区别
原文:https://www.cnblogs.com/include/archive/2011/12/09/2307905.html shell括号 学习shell的时候总是被shell里的条件判断方 ...
- shell中if条件字符串、数字比对,` `和[ ]区别
引用: http://www.51testing.com/?uid-7701-action-viewspace-itemid-13731 http://blog.csdn.net/sunboy_205 ...
- 如何在Scala中使用条件表达式 .
条件表达式 Scala的if/else语法结构和Java或C++一样.不过,在Scala中if/else表达式有值,这个值就是跟在if或else之后的表达式的值.例如: if (x > 0) 1 ...
- C语言中的条件表达式
条件运算符是C语言中唯一的三元运算符. 例如: x = (y < 0) ? -y : y; 该语句的意思是"如果y小于0,那么x = -y; 否则,x = y ". 用If ...
- Python中的条件表达式
Python中,while和if都是条件表达式,条件表达式中的条件语句不仅仅是比较运算符(>.<.==.!=等),还可以是其他运算符. 1 in与not in运算符 in与not in运算 ...
- shell中的条件判断和比较
1 shell 的$! ,$?, $$,$@ $n $1 the first parameter,$2 the second... $# The number of co ...
- shell中的条件语句
if-elif-else-fi语句 语法如下 if pipeline [pipeline-] then statements-if-true-1 [elif pipeline [pipeline ...
- shell 中的条件判断 “并且” “或者”
1.并且 条件 c1并且条件c2 方式一: -a: and if [ c1 -a c2 ]; then - fi 方式二: if [ c1 ] && [ c2 ]; then - fi ...
最新文章
- 不想被AI降维打击?美国“四院院士”写的DL科普书了解一下
- Android 图片的帧动画
- [YTU]_2499( 处理成绩(c++类训练))
- 【OpenCV3】几何图形(直线、矩形、圆、椭圆、多边形等)绘制
- 如何将字典值写入一个文本文件?
- Android热修复技术原理详解(最新最全版本)
- 手把手教你研发属于自己的智能无人机
- 大量违规投放,青桔单车被紧急约谈
- Java将日期拆分成按周或月时间段统计
- 这是一台家庭计算机重启无效,我买了一台二手计算机,配置还可以,但有时会自动重启机器,这是为什? 爱问知识人...
- python可以用c_我们可以在Python中使用C代码吗?
- Linux 系统中随机数在 KVM 中的应用
- 高淇java什么方向,高淇Java笔记(数据类型和运算符、控制语句)
- 360也开源了一个 kubernetes 的管理后台系统 Wayne
- 两台计算机之间的远程连接
- Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException: 6 at lian39.main(lian39
- (8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3
- 基于Python实现的黑白棋强化学习模型
- 数值计算(三)-插值法(2)牛顿插值法
- mysql数据库数据恢复