shell脚本中的if条件语句判断
Linux Shell编程中,if、for、while、case等条件流程控制语句用的非常多,熟练掌握以上流程控制语句及语法的实验,对编写Shell脚本有非常大的益处。
If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断,if表达式如下:
if (表达式)
语句1
fi
If语句Shell脚本编程案例如下:
(1) 比较两个整数大小。
#!/bin/bash
#By author jfedu.net 2017
NUM=100
if (( $NUM > 4 )) ;then
echo “The Num $NUM more than 4.”
else
echo “The Num $NUM less than 4.”
fi
(2)判断系统目录是否存在。
#!/bin/bash
#judge DIR or Files
#By author jfedu.net 2017
if [ ! -d /data/20140515 -a ! -d /tmp/2017/ ];then
mkdir -p /data/20140515
fi
If常见判断逻辑运算符详解:
-f 判断文件是否存在 eg: if [ -f filename ];
-d 判断目录是否存在 eg: if [ -d dir ];
-eq 等于,应用于整型比较 equal;
-ne 不等于,应用于整型比较 not equal;
-lt 小于,应用于整型比较 less than;
-gt 大于,应用于整型比较 greater than;
-le 小于或等于,应用于整型比较;
-ge 大于或等于,应用于整型比较;
-a 双方都成立(and) 逻辑表达式 –a 逻辑表达式;
-o 单方成立(or) 逻辑表达式 –o 逻辑表达式;
-z 空字符串;
|| 单方成立;
&& 双方都成立表达式。
(3) if多个条件测试分数判断。
#!/bin/bash
#By author jfedu.net 2017
scores=$1
if [[ $scores -eq 100 ]]; then
echo "very good!";
elif [[ $scores -gt 85 ]]; then
echo "good!";
elif [[ $scores -gt 60 ]]; then
echo "pass!";
elif [[ $scores -lt 60 ]]; then
echo "no pass!"
fi
If判断括号区别
在使用if语句时,经常会使用()、(())、[]、[[]]、{}等括号,如下为几种括号简单区别对比:
( ) 用于多个命令组、命令替换、初始化数组; (( )) 整数扩展、运算符、重定义变量值,算术运算比较; [] bash内部命令,[与test是等同的,正则字符范围、引用数组元素编号,不支持+-/数学运算符,逻辑测试使用-a、-o。 [[ ]] bash程序语言的关键字,不是一个命令,[[ ]]结构比[ ]结构更加通用,不支持+-/数学运算符,逻辑测试使用&&、||。 {} 主要用于命令集合或者范围,例如mkdir -p /data/201{7,8}/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。