Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 ifcaseforwhile 等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构:

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 循环用于遍历列表或执行固定次数的循环。
  • whileuntil 循环用于在条件满足时反复执行某些代码。
  • breakcontinue 控制循环的执行流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值