点击返回总页面

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脚本中实现代码的重复执行。

这些循环控制结构为我们提供了灵活性,可以根据具体的需求选择使用不同的循环控制结构。

点击返回总页面

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注