当前位置: 首页 > news >正文

Linux shell编程学习笔记19:until循环语句

Linux shell编程中的until语句,在功能上与其它编程语言一致,但在结构与其它编程语言又不太一样。在大多数编程语言中,until语句的循环条件表达式一般位于循环体语句的后面,但是在Linux shell编程中,until语句的循环条件表达式与for语句和while一样,位于循环体语句的前面。

一、数字条件循环类

我们继续以for循环语句和while循环语句中的例子,计算 从1到10与2的乘积 并输出。 

(一)在zsh命令行成功执行

# csdn @ edu in ~ [20:26:26] 
$ i=1; until [ ! $i -le 10 ]; do echo "$i * 2 = $(expr $i \* 2)"; i=$(expr $i + 1); done 
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
4 * 2 = 8
5 * 2 = 10
6 * 2 = 12
7 * 2 = 14
8 * 2 = 16
9 * 2 = 18
10 * 2 = 20

# csdn @ edu in ~ [20:27:06] 

(二)在bash命令行成功执行

# csdn @ edu in ~ [20:27:06] 
$ exec bash
[csdn ~]$ i=1; until [ ! $i -le 10 ]; do echo "$i * 2 = $(expr $i \* 2)"; i=$(expr $i + 1); done
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
4 * 2 = 8
5 * 2 = 10
6 * 2 = 12
7 * 2 = 14
8 * 2 = 16
9 * 2 = 18
10 * 2 = 20
[csdn ~]$ 

二、字符条件循环类

我们使用的实例跟前面探讨的while循环语句中的一样,先定义字符串s=abcd0,初始化循环变量i,然后从i开始截取字符串s值并输出,直到截取的字符串为0时结束循环。

(一)在bash中执行成功

[csdn ~]$ s=abcd0; i=0; until [[ ! ${s:i} != '0' ]] ; do echo ${s:i}; let i++; done
abcd0
bcd0
cd0
d0
[csdn ~]$ 

(二)在zsh命令行执行不成功

# csdn @ edu in ~ [22:36:44] 
$ s=abcd0; i=1; until [[ ! ${s:i} != '0' ]] ; do echo ${s:i}; let i++; done
zsh: unrecognized modifier `i'

 

与while循环语句一样,这个实例也在zsh命令行同样执行不成功。

三、无限循环

与for语句、while语句一样, until语句也可以实现无限循环。

下面的实例跟前面探讨的while循环语句中的一样,我们用无限循环每隔30秒显示提示信息 press Ctrl+C to exit,在用户按下Ctrl+C后结束循环。

(一)用false作为循环条件表达式

1.在zsh命令行执行成功 

# csdn @ edu in ~ [22:48:08] 
$ until false; do echo 'press Ctrl+C to exit'; sleep 30s; done
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
^C%                                                                                                                                                          

# csdn @ edu in ~ [22:49:49] C:130

 

2.在bash命令行执行成功 

[csdn ~]$ until false; do echo 'press Ctrl+C to exit'; sleep 30s; done
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
^C
[csdn ~]$ 

 

(二)用 ! : 作为循环条件表达式

1.在zsh命令行执行成功 

# csdn @ edu in ~ [22:49:49] C:130
$ until ! : ; do echo 'press Ctrl+C to exit'; sleep 30s; done
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
press Ctrl+C to exit
^C%                                                                                                                                                          

# csdn @ edu in ~ [22:55:55] C:130

2.在bash命令行执行成功 

[csdn ~]$ until ! : ; do echo 'press Ctrl+C to exit'; sleep 30s; done
press Ctrl+C to exit
^C
[csdn ~]$ 

四、总结

至此我们学习了Linux shell编程中的for、while、until三个循环语句,相对来说,for语句格式更灵活,比如支持 in 表达试,所以应用也相对更广泛。

http://www.lryc.cn/news/214788.html

相关文章:

  • (CV)论文列表
  • 恶意软件防范和拦截: 提供防范恶意软件攻击的策略
  • 单例模式浅析
  • Springboot引入mybatis-plus及操作mysql的json字段
  • springboot读取application.properties中文乱码问题
  • SAML- 安全断言标记语言
  • 【佳学基因检测】Node.js中http模块的使用
  • 前端基础之JavaScript
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • Android APT的使用
  • 【刷题宝典NO.0】
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
  • 基础课15——语音标注
  • Linux启动故障排错
  • 全新二开游戏支付通道/话费/电网、紫水晶带云端源码
  • Hadoop相关知识点
  • Javassist讲解1(介绍,读写字节码)
  • 【Linux】常见指令以及具体其使用场景
  • 后台管理(二)
  • 反转链表II(C++解法)
  • 记一次 logback 没有生成独立日志文件问题
  • 数据库强化(1.视图)
  • Mysql与SeaweedFS数据不同步问题产生原因及解决办法
  • Kotlin apply和with用法和区别
  • springboot通过aop自定义注解@Log实现日志打印
  • k8spod详解其二
  • golang包的管理
  • Windows10安装Anaconda与Pytorch的记录
  • 图解Kafka高性能之谜(五)