shell脚本总结5
目录
- 前言
- if 条件判断语句介绍
- 示例
- 常见的逻辑判断运算符
前言
shell 是一种脚本语言。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)。
if 条件判断语句介绍
If条件判断语句
# If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断# 单分支语句 ---比较大小if (条件表达式);then语句1fi# 双分支if 语句if (表达式)语句1else语句2fi# 多支条件语句 ---判断成绩if (表达式)语句1elif语句2elif语句2fi
示例
本篇主要介绍一些常见的逻辑判断运算符并简单举例。
因为例子可能会使用到test和[],这里就二者的关系简单进行一个声明:test本身就是用来做条件测试的,
方括号是test的另一种形式,即[ … ],这时候需要有空格和闭合的括号。如果同时使用test和[,就会导致语法错误。
本次举例多以[]展示。
示例1:
# 判断字符串长度
a="nihao"
if [ -n "$a" ]
then echo "字符串$a长度为${#a}"
else echo "字符串$a长度为0"
fi
结果如下:
字符串nihao长度为5
示例2:
# 判断字符串长度
a="nihao"
if test -n "$a"
then echo "字符串$a长度为${#a}"
else echo "字符串$a长度为0"
fi
结果如下:
字符串nihao长度为5
示例3:
#判断字符串是否为空
a=""
if [ -z "$a" ]
then echo "字符串a长度为零"
else echo "字符串$a长度为${#a}"
fi
结果如下:
字符串a长度为零
示例4:
# 判断两字符串是否相同
a=""
b="niyehao"
if [ "$a" = "$b" ]
then echo "两字符:a和b相同"
else echo "两字符:a和b不同"
fi
结果如下:
两字符:a和b不同
示例5:
# 判断两数字是否相同
a=10
b=10
if [ $a == $b ]
thenecho "a 等于 b"
fi
结果如下:
a 等于 b
示例6:
# 判断两数字是否不同
a=10
b=8
if [ $a != $b ]
thenecho "a 不等于 b"
fi
结果如下:
a 不等于 b
示例7:
# 比较两数字大小
grade=92
if [ $grade -gt 90 ]
thenecho "Is's very good"
fi
结果如下:
Is's very good
示例8:
# 判断文件是否存在
if [ -f a.sh ]
thenecho "文件a.sh存在"
else echo "文件a.sh不存在"
fi
结果如下:
文件a.sh存在
示例9:
# 判断目录是否存在
if [ -d "/home/11111" ]
thenecho "目录存在"
else echo "目录不存在"
fi
结果如下:
目录不存在
常见的逻辑判断运算符
-f 判断文件是否存在 eg: if [ -f filename ];
-d 判断目录是否存在 eg: if [ -d dir ];
-eq 等于,应用于整型比较 equal;
-ne 不等于,应用于整型比较 not equal;
-lt 小于,应用于整型比较 letter;
-gt 大于,应用于整型比较 greater;
-le 小于或等于,应用于整型比较;
-ge 大于或等于,应用于整型比较;
-a 双方都成立(and) 逻辑表达式 –a 逻辑表达式;
-o 单方成立(or) 逻辑表达式 –o 逻辑表达式;
-z 空字符串;
-x 是否具有可执行权限
|| 单方成立;
&& 双方都成立表达式。