作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:
Shell编程-什么是shell
Shell编程-变量
Shell编程-数据类型
Shell编程-逻辑判断(本章节)
Shell编程-if判断
Shell编程-if和else
Shell编程-while循环
Shell编程-for循环
Shell编程-case
Shell编程-break
Shell编程-continue
Shell编程--函数
Shell编程-案例(一)
Shell编程-案例(二)
Shell编程-小结
其实这里用逻辑判断是不严谨的,因为真实的判断有很多分类的。另外就是我们定义了不同的变量,那怎么对这些不同变量进行比对呢,其实主要包括的就是下面几种判断。
数值比较
if [ "$num1" -eq "$num2" ]; thenecho "Numbers are equal."
fi
-
-eq:等于
-
-ne:不等于
-
-gt:大于
-
-ge:大于等于
-
-lt:小于
-
-le:小于等于
字符串比较
if [ "$str1" = "$str2" ]; thenecho "Strings are equal."
fi
-
=:等于(注意:在 [] 中使用时,需要用双引号括起来)
-
!=:不等于
文件测试比对
if [ -f "$file" ]; thenecho "$file is a regular file."
fi
-
-f:判断文件是否存在且是普通文件
-
-d:判断文件是否存在且是目录
-
-e:判断文件是否存在(通用的存在性测试)
-
-s:判断文件是否存在且非空
-
-r:判断文件是否存在且可读
-
-w:判断文件是否存在且可写
-
-x:判断文件是否存在且可执行
逻辑运算
if [ "$var1" = "value1" ] && [ "$var2" -gt 10 ]; thenecho "Both conditions are true."
fi
-
&&:逻辑与,用于同时满足两个条件
-
||:逻辑或,用于满足任意一个条件
-
!:逻辑非,用于取反
字符串长度比较
if [ -z "$str" ]; thenecho "String is empty."
fi
-
-z:判断字符串是否为空(长度为0)
-
-n:判断字符串是否非空(长度不为0)
文件比较
-
-nt:判断文件是否比另一个文件新(newer than)
-
-ot:判断文件是否比另一个文件旧(older than)
总结
-
同类型的数据类型才能进行比对
-
这里都只是判断,下一小节将针对判断结果进行下一步的操作。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。