在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 if
、case
、for
、while
等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构:
1. if
语句
if
语句用于条件判断,执行符合条件的代码块。
语法结构
if [ condition ]; then
# 当 condition 为真时执行的语句
elif [ another_condition ]; then
# 当 another_condition 为真时执行的语句
else
# 当上述条件都不满足时执行的语句
fi
示例
#!/bin/bash
a=10
b=20
if [ $a -gt $b ]; then
echo "a is greater than b"
elif [ $a -lt $b ]; then
echo "a is less than b"
else
echo "a is equal to b"
fi
2. case
语句
case
语句用于多分支选择,通常用于替代 if-elif-else
结构,当需要判断的条件较多时特别有用。
语法结构
case expression in
pattern1)
# 当 expression 匹配 pattern1 时执行的语句
;;
pattern2)
# 当 expression 匹配 pattern2 时执行的语句
;;
*)
# 默认情况下执行的语句
;;
esac
示例
#!/bin/bash
day="Monday"
case $day in
"Monday")
echo "Start of the work week"
;;
"Friday")
echo "End of the work week"
;;
"Saturday"|"Sunday")
echo "It's the weekend!"
;;
*)
echo "Midweek day"
;;
esac
3. for
循环
for
循环用于遍历列表中的每一个元素,通常用于处理数组或一系列的值。
语法结构
for variable in list; do
# 对 list 中的每个 variable 执行的语句
done
示例
#!/bin/bash
for i in 1 2 3 4 5; do
echo "Number: $i"
done
# 或者使用 C 风格的 for 循环
for ((i=1; i<=5; i++)); do
echo "Number: $i"
done
4. while
循环
while
循环在条件为真时重复执行一段代码,直到条件为假时停止。
语法结构
while [ condition ]; do
# 当 condition 为真时执行的语句
done
示例
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
done
5. until
循环
until
循环与 while
循环相反,条件为假时重复执行代码块,直到条件为真时停止。
语法结构
until [ condition ]; do
# 当 condition 为假时执行的语句
done
示例
#!/bin/bash
count=1
until [ $count -gt 5 ]; do
echo "Count: $count"
count=$((count + 1))
done
总结
if
语句用于条件判断和分支执行。case
语句用于多分支选择,适合匹配多个模式。for
循环用于遍历列表或执行固定次数的循环。while
和until
循环用于在条件满足时反复执行某些代码。break
和continue
控制循环的执行流。