如何在 Shell 脚本中实现条件判断和循环?
在 Shell 脚本中,条件判断和循环是非常重要的控制结构,它们能让脚本根据不同情况执行不同操作,或者重复执行某些任务。下面详细介绍在 Shell 脚本中实现条件判断和循环的方法。
条件判断
在 Shell 脚本里,常用
if-else 语句来进行条件判断,有几种不同的形式。1. 简单的 if 语句
#!/bin/bash
num=10
if [ $num -gt 5 ]; then
echo "数字 $num 大于 5"
fi
解释:
#!/bin/bash:指定脚本使用的解释器为 Bash。[ $num -gt 5 ]:这是条件判断部分,-gt是比较运算符,表示 “大于”。fi:用于结束if语句块。
2. if-else 语句
#!/bin/bash
num=3
if [ $num -gt 5 ]; then
echo "数字 $num 大于 5"
else
echo "数字 $num 小于或等于 5"
fi
解释:当
if 语句中的条件不满足时,会执行 else 语句块中的内容。3. if-elif-else 语句
#!/bin/bash
num=5
if [ $num -gt 5 ]; then
echo "数字 $num 大于 5"
elif [ $num -eq 5 ]; then
echo "数字 $num 等于 5"
else
echo "数字 $num 小于 5"
fi
解释:
elif 用于在 if 条件不满足时进行额外的条件判断,可根据需要添加多个 elif 语句。循环
Shell 脚本支持多种循环结构,如
for 循环、while 循环和 until 循环。1. for 循环
#!/bin/bash
for i in 1 2 3 4 5; do
echo "当前数字是 $i"
done
解释:
for i in 1 2 3 4 5:i是循环变量,会依次取列表中的值。done:用于结束for循环。
也可以使用
{start..end} 这种形式来简化范围表示:#!/bin/bash
for i in {1..5}; do
echo "当前数字是 $i"
done
2. while 循环
#!/bin/bash
num=1
while [ $num -le 5 ]; do
echo "当前数字是 $num"
num=$((num + 1))
done
解释:
while [ $num -le 5 ]:只要条件$num -le 5(即$num小于等于 5)成立,就会一直执行循环体。num=$((num + 1)):用于更新循环变量num的值。
3. until 循环
#!/bin/bash
num=1
until [ $num -gt 5 ]; do
echo "当前数字是 $num"
num=$((num + 1))
done
解释:
until 循环与 while 循环相反,只要条件不成立,就会一直执行循环体,直到条件成立为止。综合示例
下面是一个结合条件判断和循环的示例,用于找出 1 到 10 之间的偶数:
#!/bin/bash
for i in {1..10}; do
if [ $((i % 2)) -eq 0 ]; then
echo "$i 是偶数"
fi
done
解释:
for i in {1..10}:循环变量i从 1 到 10 依次取值。if [ $((i % 2)) -eq 0 ]:使用取模运算符%判断i是否为偶数,如果余数为 0,则执行echo语句输出该偶数。
浙公网安备 33010602011771号