各类资料学习下载合集
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