shell脚本之判断语句if详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
shell脚本之判断语句if详解
使⽤ Linux 系统这么长时间,对 shell 脚本也算是⽐较熟悉。
其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能。
这次抽时间好好总结⼀下 shell ⽅⾯的知识,综合的再学习⼀下,记录。
这篇⽂章总结的是 shell 脚本的 if 语句的使⽤。
⼀、if 语句的基本语法
if [ 条件判断 ]; then
... ...
elif [ 条件判断 ]; then
... ...
else
... ...
fi
⼆、⽂件/⽬录的判断
关于⽂件或⽬录的相关判断⽅法:
[ -e file ] 判断⽂件是否存在
[ -f file ] 判断⽂件是否是普通⽂件
[ -d file ] 判断⽂件是否是⽬录⽂件
[ -b file ] 判断⽂件是否块设备⽂件
[ -c file ] 判断⽂件是否字符设备⽂件
[ -s file ] 判断⽂件是否是⾮空⽂件
[ -r file ] 判断⽂件是否可读
[ -w file ] 判断⽂件是否可写
[ -x file ] 判断⽂件是否可执⾏
三、数字⽐较判断
关于针对数字的判断,⾸先定义a=10, b=8
[root@vip ~]# a=10 b=8
[ $a -eq $b ] 判断 a 是否等于 b
[ $a -ne $b ] 判断 a 是否不等 b
[ $a -gt $b ] 判断 a 是否⼤于 b
[ $a -ge $b ] 判断 a 是否⼤等 b
[ $a -lt $b ] 判断 a 是否⼩于 b
[ $a -le $b ] 判断 a 是否⼩等 b
四、字符串的判断和⽐较
关于针对字符串的判断⽐较,⾸先定义 str1=abc, str2=abd
[root@vip ~]# str1=abc; str2=abd
[ -z str ] 判断 str 是否长度为0
[ -n str ] 判断 str 是否长度不为0
[ str1 == str2 ] 判断 str1 与 str2 是否相等
[ str1 != str2 ] 判断 str1 与 str2 是否不等
[ str1 \> str2 ] 判断 str1 是否⼤于 str2
[ str1 \< str2 ] 判断 str1 是否⼩于 str2
[[ str1 > str2 ]] 判断 str1 是否⼤于 str2
[[ str1 < str2 ]] 判断 str1 是否⼩于 str2
五、逻辑判断
[ $a -lt $b -a $str1 == $str2 ] a ⼤于 b, ⽽且 str1 与 str2 相等 (&&) [ $a -lt $b -o $str1 == $str2 ] a ⼤于 b, 或者 str1 与 str2 相等 (||) [[ $a -gt $b && $str1 == $str2 ]] a ⼤于 b, ⽽且 str1 与 str2 相等 (&&) [[ $a -gt $b || $str1 == $str2 ]] a ⼤于 b, 或者 str1 与 str2 相等 (||) [ $a -lt $b ] && [ $str1 == $str2 ] a ⼤于 b, ⽽且 str1 与 str2 相等 (&&) [ $a -lt $b ] || [ $str1 == $str2 ] a ⼤于 b, 或者 str1 与 str2 相等 (||)六、常⽤ if 实例
待更新。