Bash中的循环命令用法详解

0 下载量 106 浏览量 更新于2024-08-31 收藏 76KB PDF 举报
Bash 中的循环命令用法原理 Bash 中的循环命令有四种:for 循环、while 循环、until 循环和 select 循环。这些循环命令的主要作用是重复执行一个命令或者一组命令,直到完成事先设置好的次数或者达到某种条件。 **for 循环** for 循环命令用于根据项目清单确定的次数执行命令。for 命令后面紧跟着用户自定义变量-关键字 in,然后是一个单词清单。第一次执行循环,单词列表中的第一个单词被赋值给变量。一旦单词被赋值给赋值变量,就进入循环体,执行关键字 do 和 done 之间的命令。下一次的循环,第二个单词被赋值给变量,如此继续。循环体由 do 开始到 done 结束。当清单中的所有单词都轮换过一次以后,循环结束,程序控制继续 done 后面的语句。 for 循环的格式如下: ``` for variable in word_list do commands done ``` 如果需要将 for 循环写成一行,则单词列表和 do 之间需要用分号来分隔: ``` for variable in word_list; do commands; done ``` 示例一: ``` #!/usr/bin/bash for name in Tom Dick Harry Joe do echo "Hi, $name" done echo "Out of loop." ``` 示例二: ``` #!/usr/bin/bash for person in $(cat myfile) do mail $person < letter echo "$person was sent a letter." done echo "The letter has been sent." ``` 示例三: ``` #!/usr/bin/bash dir=/home/tony/backupscripts for file in backup{1..5} do if [ -f $file ] # 检查当前目录下该文件是否真实存在 then cp "$file" "$dir/$file.bak" echo "The $file is backed up in $dir" fi done ``` 在 for 循环中,@ 和 * 变量的使用方式不同。在不使用双引号的时候是一样的。当使用引号的时候,* 的值是一个字符串,而 @ 的值是一组分开的单词。 **while 循环** while 循环命令用于根据条件执行命令。while 命令后面紧跟着条件表达式,如果条件表达式为真,则执行循环体。循环体由 do 开始到 done 结束。当条件表达式为假时,循环结束,程序控制继续 done 后面的语句。 **until 循环** until 循环命令用于根据条件执行命令。until 命令后面紧跟着条件表达式,如果条件表达式为假,则执行循环体。循环体由 do 开始到 done 结束。当条件表达式为真时,循环结束,程序控制继续 done 后面的语句。 **select 循环** select 循环命令用于根据用户输入执行命令。select 命令后面紧跟着变量名和选项列表。用户输入的值将被赋值给变量,然后执行循环体。循环体由 do 开始到 done 结束。 Bash 中的循环命令为用户提供了灵活的控制流程,能够根据不同的情况执行不同的命令。