Shell流程控制详解

各类资料学习下载合集

​https://pan.quark.cn/s/8c91ccb5a474​

在Shell脚本编程中,流程控制是指通过条件判断、循环等结构来控制程序的执行流。掌握流程控制可以帮助我们编写更灵活、功能更强大的脚本。本文将详细介绍Shell中的常见流程控制结构,包括条件判断、循环结构及其用法,并提供代码示例与运行结果。

1. 条件判断

1.1 ​​if​​语句

​if​​语句是Shell中最基本的条件判断结构。其基本语法如下:

if [ 条件 ]; then
    # 条件为真时执行的命令
elif [ 其他条件 ]; then
    # 其他条件为真时执行的命令
else
    # 所有条件都不满足时执行的命令
fi
示例:判断数字大小
#!/bin/bash

# 判断两个数字的大小
read -p "请输入第一个数字: " num1
read -p "请输入第二个数字: " num2

if [ "$num1" -gt "$num2" ]; then
    echo "$num1 是较大数字"
elif [ "$num1" -lt "$num2" ]; then
    echo "$num2 是较大数字"
else
    echo "两个数字相等"
fi

1.2 运行结果

请输入第一个数字: 5
请输入第二个数字: 10
10 是较大数字

2. 循环结构

循环结构用于重复执行某些操作,Shell中主要有​​for​​循环、​​while​​循环和​​until​​循环。

2.1 ​​for​​循环

​for​​循环用于在给定的范围内重复执行命令。

示例:打印1到5的数字
#!/bin/bash

# 打印1到5的数字
for i in {1..5}; do
    echo "当前数字: $i"
done

2.2 运行结果

当前数字: 1
当前数字: 2
当前数字: 3
当前数字: 4
当前数字: 5

2.3 ​​while​​循环

​while​​循环会在条件为真时重复执行命令。

示例:计算1到5的和
#!/bin/bash

# 计算1到5的和
sum=0
count=1

while [ $count -le 5 ]; do
    sum=$((sum + count))
    count=$((count + 1))
done

echo "1到5的和是: $sum"

2.4 运行结果

1到5的和是: 15

2.5 ​​until​​循环

​until​​循环与​​while​​循环相反,直到条件为真时才结束。

示例:倒计时
#!/bin/bash

# 倒计时5秒
count=5

until [ $count -le 0 ]; do
    echo "倒计时: $count"
    count=$((count - 1))
done

echo "时间到!"

2.6 运行结果

倒计时: 5
倒计时: 4
倒计时: 3
倒计时: 2
倒计时: 1
时间到!

3. 选择结构

3.1 ​​case​​语句

​case​​语句用于多条件判断,适用于多个条件分支的情况。

示例:根据用户输入选择水果
#!/bin/bash

# 选择水果
echo "请选择一种水果: apple, banana, orange"
read fruit

case $fruit in
    apple)
        echo "你选择了苹果"
        ;;
    banana)
        echo "你选择了香蕉"
        ;;
    orange)
        echo "你选择了橙子"
        ;;
    *)
        echo "未知水果"
        ;;
esac

3.2 运行结果

请选择一种水果: apple, banana, orange
apple
你选择了苹果

4. 使用函数

在Shell中,函数可以帮助我们将重复的代码封装起来,提高代码的可读性和可维护性。

示例:定义一个计算平方的函数

#!/bin/bash

# 定义函数
calculate_square() {
    local num=\$1
    echo $((num * num))
}

# 主程序
read -p "请输入一个数字: " number
square=$(calculate_square "$number")
echo "$number 的平方是: $square"

运行结果

请输入一个数字: 4
4 的平方是: 16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值