前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Shell编程-while循环

Shell编程-while循环

作者头像
运维小路
发布2024-11-01 19:48:55
发布2024-11-01 19:48:55
1210
举报
文章被收录于专栏:运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell

Shell编程-变量

Shell编程-数据类型

Shell编程-逻辑判断

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环(本章节)

Shell编程-for循环

Shell编程-case

Shell编程-break

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

前面两小节,我们讲了if判断及if和else判断,下面我们讲2个循环,一个是while循环,一个for循环。

while 是Shell脚本中用于创建循环的另一个关键字,它不同于 for 循环,while 循环会根据条件的真假重复执行一段代码块,直到条件不再满足为止。

基本语法:

代码语言:javascript
复制
while condition
do
    # 在循环中执行的命令或代码块
done

condition 是一个用于测试真假的表达式或命令。在每次循环迭代开始时,都会检查 condition 的值。如果条件为真,则执行循环体中的代码块;如果条件为假,则结束循环。

示例:

使用计数器进行循环:
代码语言:javascript
复制
#!/bin/bash

# 使用 while 循环输出 1 到 5 的数字
counter=1
while [ $counter -le 5 ]
do
    echo "Counter: $counter"
    counter=$((counter + 1))  # 计数器加一
done

在这个示例中,while [ $counter -le 5 ] 检查 counter 的值是否小于等于 5。只要条件成立,即 counter 小于等于 5,就会输出当前计数器的值并将计数器递增,当counter大于5的时候则会退出循环。

从文件中读取内容:
代码语言:javascript
复制
#!/bin/bash

# 从文件中逐行读取内容并输出
file="example.txt"

while IFS= read -r line
do
    echo "Line: $line"
done < "$file"

在这个例子中,while IFS= read -r line 从文件 example.txt 中逐行读取内容,并将每行内容赋给变量 line,然后输出每行的内容。IFS=-r 是为了确保读取的内容不被意外处理,保持其原始格式,当所有行被打印完毕,则会退出整个循环。

死循环:

前面2个循环都有比较明确的退出条件,但是有的时候需要长期执行,也就是不退出这个循环。

代码语言:javascript
复制
#!/bin/bash

count=1
while true; do
    echo "this is test $count."
    ((count++))
    sleep 1
done

在这个脚本就写出来可以看到执行过程,每次执行停止1秒,显示也会更加友好,你不主动停止,它会持续执行。这个脚本可以把echo命令换成更加具体的命令,比如不停的向数据库或者其他中间里面插入数据,如果为了插入更多的数据,可以把sleep取消。如果希望关掉登录窗口也可以执行,可以参考Linux进阶命令-nohup&screen,配置到后台这样它就可以持续为我们的服务。

总结

  1. while循环,如果不给它退出条件,它会持续运行,俗称死循环。
  2. while循环,也可以给它设定条件,只要达到条件就会自动退出。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本语法:
  • 示例:
    • 使用计数器进行循环:
      • 从文件中读取内容:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档