点击返回总页面
7. Shell 的控制结构
条件判断(if, else, case)
经常需要根据不同的条件执行不同的代码。
1. if语句
if语句用于根据条件判断来执行不同的操作。
if [ condition ]; then
# 执行代码块1
elif [ condition ]; then
# 执行代码块2
else
# 执行代码块3
fi
判断一个数是否为正数
#!/bin/bash
# 获取用户输入的数字
echo "请输入一个数字: "
read num
# 判断数字是否为正数
if [ $num -gt 0 ]; then
echo "输入的数字是正数"
elif [ $num -lt 0 ]; then
echo "输入的数字是负数"
else
echo "输入的数字是零"
fi
2. case语句
case语句用于根据不同的值选择执行不同的操作。
case variable in
pattern1)
# 执行代码块1
;;
pattern2)
# 执行代码块2
;;
*)
# 执行代码块3
;;
esac
根据用户输入的数字返回对应星期几的英文单词
#!/bin/bash
# 获取用户输入的数字
echo "请输入一个数字(1-7): "
read num
case $num in
1)
echo "Monday"
;;
2)
echo "Tuesday"
;;
3)
echo "Wednesday"
;;
4)
echo "Thursday"
;;
5)
echo "Friday"
;;
6)
echo "Saturday"
;;
7)
echo "Sunday"
;;
*)
echo "输入的数字不在范围内"
;;
esac
以上是关于条件判断的基本知识和示例代码。通过if和case语句,你可以根据不同的条件执行不同的操作,实现更加灵活的控制流程。
循环控制(for, while, until)
通过循环,我们可以重复执行一段代码块,以达到自动化处理任务的目的。
常见的循环控制结构有
- for循环
- while循环
- until循环
1. for循环
for循环是在已知循环次数的情况下使用的循环结构。
for 变量 in 列表
do
# 循环体
done
这里的变量
是一个自定义的变量名,可以用于在每次循环中迭代取值。列表
可以是一组值或者一个含有一组值的变量,每个取值都会作为变量的值进行一次循环。
案例:使用for循环打印出数组中的元素:
#!/bin/bash
my_array=("apple" "banana" "cherry")
for fruit in "${my_array[@]}"
do
echo $fruit
done
输出:
apple
banana
cherry
2. while循环
while循环是在条件为真的情况下一直执行的循环结构。
while 条件
do
# 循环体
done
循环会一直执行,直到条件为假为止。
案例:使用while循环计算数字的累加和:
#!/bin/bash
sum=0
num=1
while [ $num -le 10 ]
do
sum=$((sum + num))
num=$((num + 1))
done
echo "Sum is: $sum"
输出:
Sum is: 55
3. until循环
until 循环是在条件为假的情况下一直执行的循环结构。
until 条件
do
# 循环体
done
循环会一直执行,直到条件为真为止。
以下是一个简单的例子,使用until循环打印出数字从10递减至1的序列:
#!/bin/bash
num=10
until [ $num -eq 0 ]
do
echo $num
num=$((num - 1))
done
输出:
10
9
8
7
6
5
4
3
2
1
通过for循环、while循环和until循环,我们可以在shell脚本中实现代码的重复执行。
这些循环控制结构为我们提供了灵活性,可以根据具体的需求选择使用不同的循环控制结构。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。