引言:给脚本装上“大脑”和“四肢”
想象一下,如果你的脚本世界只有一条笔直的高速公路,从起点到终点,毫无波澜,那该多无聊啊!现实世界充满了选择与循环:“如果今天下雨,我就带伞;否则,我就晒被子。” 或者 “只要老板没喊停,我就一直写代码。”
Shell脚本亦然。流程控制(Flow Control)就是赋予脚本“大脑”(条件判断)和“四肢”(循环行动)的关键。它让脚本能够根据不同的情况做出决策,重复执行枯燥的任务,从而变得智能、高效和强大。
今天,我们就来一场Shell流程控制的深度探险,看看这些看似简单的关键字背后,究竟藏着怎样的魔力。
第一章:抉择时刻!if...else:脚本界的“人生选择题”
if语句是流程控制的基石,它让脚本拥有了最基本的判断能力。其语法结构就像一场严谨的面试:
if [ 条件判断 ]; then
# 如果条件为真(True),执行这里的代码
elif [ 另一个条件判断 ]; then
# 如果上一个if为假,但这个elif为真,执行这里
else
# 如果所有以上的条件都为假(False),执行这里的代码
fi # 表示if语句的结束,别忘了它!
关键点深度分析:
[ ]的秘密:[ ]其实是test命令的另一种形式。里面的条件判断必须与括号之间有空格,否则会报错!这是新手最常踩的坑之一。- 条件判断的运算符:
-
- 字符串比较:
=(相等),!=(不相等),-z(长度为0),-n(长度非0)。 - 数字比较:
-eq(等于),-ne(不等于),-gt(大于),-lt(小于),-ge(大于等于),-le(小于等于)。切记不要用==,>, <来比较数字! - 文件测试:
-e(文件是否存在),-f(是否是普通文件),-d(是否是目录),-r(是否
- 字符串比较:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



