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