📜  linux while 循环 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:42.948000             🧑  作者: Mango

Linux while 循环 - Shell-Bash

简介

在 Shell-Bash 中,while 循环允许您执行一系列命令,直到某个条件不成立为止。它通常用于处理文件、读取输入和遍历目录等场景。在这个指南中,我们将学习如何使用 while 循环。

基本语法

while 循环的基本语法如下所示:

while [ conditional expression ]
do
   command1
   command2
   command3
   ...
   commandN
done

while 关键字用于循环的开始,条件表达式用于测试循环是否终止,do 关键字指定开始循环的命令,done 关键字指定循环结束的位置。循环体中的所有命令都将按顺序执行。

示例

以下是一个简单的示例,它将输出 1 到 5:

#!/bin/bash

counter=1
while [ $counter -le 5 ]
do
   echo $counter
   ((counter++))
done

输出:

1
2
3
4
5
条件表达式

while 循环的条件表达式可以是任何评估为真或假的表达式。下面是一些常用的条件表达式:

  • n1 -eq n2:n1 等于 n2。
  • n1 -ge n2:n1 大于等于 n2。
  • n1 -gt n2:n1 大于 n2。
  • n1 -le n2:n1 小于等于 n2。
  • n1 -lt n2:n1 小于 n2。
  • n1 -ne n2:n1 不等于 n2。
  • str1 = str2:str1 等于 str2。
  • str1 != str2:str1 不等于 str2。
  • -d file:file 是一个目录。
  • -e file:file 存在。
  • -f file:file 是一个普通文件。
  • -r file:file 可读。
  • -s file:file 存在且非空。
  • -w file:file 可写。
  • -x file:file 可执行。
中断循环

您可以使用 break 命令在循环中间中断循环。下面是一个简单的示例,它在计数器达到 3 时中断循环:

#!/bin/bash

counter=1
while [ $counter -le 5 ]
do
   if [ $counter -eq 3 ]
   then
      break
   fi
   echo $counter
   ((counter++))
done

输出:

1
2
继续循环

您可以使用 continue 命令跳过循环中的一次迭代。下面是一个简单的示例,它跳过计数器为奇数的迭代:

#!/bin/bash

counter=1
while [ $counter -le 5 ]
do
   if [ $((counter % 2)) -eq 1 ]
   then
      ((counter++))
      continue
   fi
   echo $counter
   ((counter++))
done

输出:

2
4
结论

在本指南中,我们介绍了在 Shell-Bash 中使用 while 循环的基本语法、条件表达式、中断循环和继续循环的方法。使用 while 循环,您可以轻松地处理文件、读取输入和遍历目录等场景。