打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux革命性工具,shell脚本循环结构重复执行命令
userphoto

2023.01.13 广东

关注

为什么要用循环结构

在shell运维中,很多时候我们都要重复的执行某个功能,而计算机比人的优势大的地方就在于适合执行确定的功能。利用计算机的强大计算能力完成自动化脚本工作。

比如我要新建一批用户cat1、cat2、...、cat100。密码是用户名加上后六位随机数。这个过程如果手动完成是非常耗时,要重复执行useradd添加用户并用passwd分配密码。但是使用循环脚本就非常方便了,如果将用户量增大到100台服务器,每台服务器分配1000个人用户,就可以显示出循环语句的威力。

for循环

for var in item1 item2 ... itemNdo command1 command2 ... commandNdone
for i in 1 2 3 hello abcdo    echo $idone

输出当前路径下所有文件名

for i in `ls`do echo $idone

输出序列1-10

for i in $(seq 1 10)do    echo $idone
for i in {1..10}do echo $idone

输出字母a-z

for i in {a..z}do    echo $idone

for ((…;…;…)) do…done

for ((i=1;i<=10;i+=2))do echo $idone

while循环

while 循环用于不断执行一系列命令,也用于从输入文件中读取数据。

while conditiondo    commanddone

偶数和

sum=0i=0while [ $i -le 50 ]do let sum+=i let i+=2doneecho '0-50的偶数和为:$sum'

循环输入名字,文件结束符为Ctrl+d,输入文件结束符后read指令返回false。

while read -p 'Please input your name: ' namedo    echo $namedone

until 循环

until 循环执行一系列命令直至条件为 true 时停止。

until 循环与 while 循环在处理方式上刚好相反。

一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用。

until 语法格式:

until conditiondo commanddone

condition 一般为条件表达式,如果返回值为 false,则继续执行循环体内的语句,否则跳出循环。

以下实例我们使用 until 命令来输出 0 ~ 9 的数字:

a=0until [ ! $a -lt 10 ]do    echo $a    a=`expr $a + 1`done

跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell 使用两个命令来实现该功能:breakcontinue

break 命令

break 命令允许跳出所有循环(终止执行后面的所有循环)。

下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。

while truedo read -p '请输入1-5虹之间的数字:' n case $n in 1|2|3|4|5) echo '你输入的数字为$n' ;; *) echo '请输入正确的数字范围' break ;; esacdone

continue

continue 命令与 break 命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

对上面的例子进行修改:

while truedo    read -p '请输入1-5之间的数字:' n    case $n in        1|2|3|4|5) echo '你输入的数字为$n'        ;;        *) echo '请输入正确的数字范围'            continue            echo '游戏结束,这句话永远不会被执行'        ;;    esacdone
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Shell脚本之break,continue,和exit区别
SHELL十三问之十三:for、while 与 until 差在哪
shell浅谈之三for、while、until循环
Shell 流程控制
Bash脚本编程学习笔记07:循环结构体
linux shell学习笔记4(退出和退出码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服