返回

Shell 编程循环语句:掌握循环控制的奥秘

前端

在 Shell 编程的广袤天地中,循环语句扮演着至关重要的角色,它们使我们能够重复执行代码块,从而自动化任务并提高效率。在本文中,我们将深入探讨 Shell 中的循环语句,包括 for、while、until、select、in 和 break/continue 。

for 循环:精准控制循环次数

for 循环是一种确定性循环,它允许我们基于一个已知范围或列表明确定义循环的执行次数。其语法如下:

for variable in list
do
  # 循环体
done

其中:

  • variable 是循环变量,它将遍历 list 中的值。
  • list 是一个包含要遍历的值的列表。
  • 循环体 是在每次迭代中执行的代码块。

while 循环:循环直至条件满足

while 循环是一种条件循环,它会不断执行循环体,直至给定的条件为 false。其语法如下:

while condition
do
  # 循环体
done

其中:

  • condition 是一个布尔表达式,它决定是否执行循环体。
  • 循环体 是在条件为 true 时执行的代码块。

until 循环:循环直至条件不满足

until 循环与 while 循环类似,但条件的逻辑取反。它会不断执行循环体,直至给定的条件为 true。其语法如下:

until condition
do
  # 循环体
done

select in 循环:遍历单词列表

select in 循环专门用于遍历一个单词列表。其语法如下:

select variable in list
do
  # 循环体
done

其中:

  • variable 是循环变量,它将遍历 list 中的单词。
  • list 是一个包含要遍历的单词的列表。
  • 循环体 是在每次迭代中执行的代码块。

break 和 continue 灵活控制循环流程

break 和 continue 关键字可用于控制循环的流程。break 用于立即退出循环,而 continue 用于跳过当前迭代并继续执行下一迭代。

  • break:退出循环,继续执行循环后面的代码。
  • continue:跳过当前迭代,继续执行循环的下一迭代。

Shell 循环语句实例

为了更好地理解这些循环语句,让我们看一些示例:

for 循环:打印 1-10

for i in {1..10}
do
  echo $i
done

while 循环:读取用户输入,直到输入 "quit"

while true
do
  echo "Enter a command (or quit to exit): "
  read command

  if [[ $command == "quit" ]]
  then
    break
  fi

  # 执行命令
done

until 循环:等待文件存在

until [ -f "/tmp/myfile.txt" ]
do
  sleep 1
done

select in 循环:打印文件中的单词

select word in $(cat /tmp/myfile.txt)
do
  echo $word
done

break 和 continue 示例

for i in {1..10}
do
  if [[ $i == 5 ]]
  then
    continue
  fi

  echo $i

  if [[ $i == 8 ]]
  then
    break
  fi
done

总结

Shell 中的循环语句为我们提供了强大的工具来控制程序流。for、while、until、select、break 和 continue 关键字使我们能够创建灵活且高效的循环,从而实现广泛的任务自动化和复杂逻辑实现。通过熟练掌握这些循环语句,我们可以显著提升 Shell 脚本的能力和可读性。