[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

简介: [oeasy]python0035_ 整合shell编程_循环_延迟_清屏

 

整合shell编程

回忆上次内容

    • \r
      • 可以让输出位置回到行首
      • 原位刷新时间
        • 如果想要的是大字符效果
          • 需要使用 figlet
          • 但同时还希望能刷新

            image.gif编辑

              • 这可能吗?🤔

              建立脚本

                • 我们得熟悉一下shell
                • 先新建一个test.sh
                  • vi test.sh

                    python3 show_time.py

                    python3 show_time.py

                    python3 show_time.py

                      • 看起来就是把这个内容输出了 3 次

                      image.gif编辑

                        • 可以执行么?

                        尝试执行

                          • 注意执行细节

                          image.gif编辑

                            • 在vim的正常状态用:w|!sh %执行
                              • :w 保存
                              • | 并且执行
                              • !sh % 用外部命令sh执行这个test.sh
                                • 注意这里使用的外部程序不是python
                                • 而是sh
                                • sh 就像 python3 是外部命令名
                                • % 代指test.sh
                                  • 就像以前的sleep.py
                                  • 是文件名

                                        image.gif编辑

                                          • 确实输出了三次时间
                                          • 但我还想把字变大怎么办呢?

                                          figlet变大

                                            • show_time.py 的输出字符串
                                              • 直接通过 管道| 给到 figlet
                                                • 其中
                                                  • show_time.py程序
                                                    • 只负责输出时间
                                                      • 输出的结果
                                                        • 通过管道|figlet
                                                          • figlet
                                                            • 负责变大

                                                                image.gif编辑

                                                                  • 如果想要输出三个变大之后的时间
                                                                  • 应该如何呢?

                                                                  三次输出

                                                                    • 修改test.sh
                                                                      • vi test.sh
                                                                      • 编写以下文件

                                                                        python3 show_time.py | figlet

                                                                        python3 show_time.py | figlet

                                                                        python3 show_time.py | figlet

                                                                          • 尝试运行

                                                                          image.gif编辑

                                                                            • 运行结果

                                                                            image.gif编辑

                                                                              • 确实变大了
                                                                                • 而且输出了三次
                                                                                  • 现在需要不只输出三次
                                                                                    • 而是无限多次不断刷新
                                                                                    • 应该怎么办呢?

                                                                                      尝试循环

                                                                                        • 无限多次肯定需要循环!
                                                                                        • 原来放在 python文件 中的的循环和定时功能
                                                                                          • 现在都需要放在 sh脚本 文件里
                                                                                          • shell 来控制延迟的节奏
                                                                                            • 那问题来了
                                                                                              • sh脚本文件 如何进行循环?

                                                                                                搜索一下!

                                                                                                image.gif编辑

                                                                                                image.gif编辑

                                                                                                  • 尝试根据这个修改

                                                                                                  shell循环

                                                                                                    • 在shell中
                                                                                                      • 新编辑一个loop.sh
                                                                                                      • vi loop.sh
                                                                                                        • 输入以下内容

                                                                                                        for a in {1..10}

                                                                                                        do

                                                                                                           echo $a

                                                                                                        done

                                                                                                          • 尝试运行此文件

                                                                                                          保存并运行

                                                                                                          image.gif编辑

                                                                                                            • :w 保存当前文档
                                                                                                            • :!sh %运行当前shell
                                                                                                            • :w|!sh %保存并运行当前shell
                                                                                                            • 执行的结果如下

                                                                                                            image.gif编辑

                                                                                                              • 成功循环了起来
                                                                                                              • 光是循环还不够
                                                                                                                • 还需要延迟
                                                                                                                  • 怎么办?

                                                                                                                  搜索延迟

                                                                                                                  image.gif编辑

                                                                                                                  for a in {1..10}

                                                                                                                  do

                                                                                                                     echo $a

                                                                                                                     sleep 1s

                                                                                                                  done

                                                                                                                  image.gif编辑

                                                                                                                    • :w|!sh %
                                                                                                                      • 保存并运行当前 shell
                                                                                                                        • 延迟成功
                                                                                                                          • 接下来需要输出时间了
                                                                                                                          • 而且是通过管道给 figlet 的大时间

                                                                                                                            整合 python

                                                                                                                              • 把原来数字的部分换成执行命令
                                                                                                                                • python3 show_time.py | figlet

                                                                                                                                  for a in {1..10}

                                                                                                                                  do

                                                                                                                                     python3 show_time.py | figlet

                                                                                                                                     sleep 1s

                                                                                                                                  done

                                                                                                                                    • 输出成功
                                                                                                                                      • 确实可以刷新
                                                                                                                                      • 但是一屏幕上
                                                                                                                                      • 有两个时间
                                                                                                                                        • 很乱!

                                                                                                                                        image.gif编辑

                                                                                                                                          • 我想只要一个!
                                                                                                                                            • 少则得多则惑!
                                                                                                                                              • 可以清一下屏幕么?

                                                                                                                                              尝试清屏

                                                                                                                                              image.gif编辑

                                                                                                                                              for a in {1..10}

                                                                                                                                              do

                                                                                                                                                 clear

                                                                                                                                                 python3 sleep.py | figlet

                                                                                                                                                 sleep 1s

                                                                                                                                              done

                                                                                                                                                • 先去总结一下

                                                                                                                                                总结

                                                                                                                                                  • 这次我们研究了shell脚本的编程
                                                                                                                                                  • 并且在shell中实现了
                                                                                                                                                    • 循环语句
                                                                                                                                                    • 延迟命令
                                                                                                                                                    • 清屏命令
                                                                                                                                                    • python命令
                                                                                                                                                    • figlet命令

                                                                                                                                                      image.gif编辑

                                                                                                                                                        目录
                                                                                                                                                        相关文章
                                                                                                                                                        |
                                                                                                                                                        2月前
                                                                                                                                                        |
                                                                                                                                                        算法 Java Docker
                                                                                                                                                        (Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
                                                                                                                                                        IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
                                                                                                                                                        341 1
                                                                                                                                                        |
                                                                                                                                                        5月前
                                                                                                                                                        |
                                                                                                                                                        Python
                                                                                                                                                        Python中的循环可以嵌套使用吗?
                                                                                                                                                        Python中的循环可以嵌套使用吗?
                                                                                                                                                        357 57
                                                                                                                                                        |
                                                                                                                                                        7月前
                                                                                                                                                        |
                                                                                                                                                        存储 索引 Python
                                                                                                                                                        [oeasy]python093_find方法_指数为负数_index_实际效果
                                                                                                                                                        本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
                                                                                                                                                        458 8
                                                                                                                                                        |
                                                                                                                                                        8月前
                                                                                                                                                        |
                                                                                                                                                        人工智能 索引 Python
                                                                                                                                                        [oeasy]python091_列表_索引_index_中括号_索引函数
                                                                                                                                                        本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
                                                                                                                                                        245 20
                                                                                                                                                        |
                                                                                                                                                        7月前
                                                                                                                                                        |
                                                                                                                                                        机器学习/深度学习 算法 关系型数据库
                                                                                                                                                        Python循环进阶:嵌套与控制的深度解析
                                                                                                                                                        本文深入探讨Python中嵌套循环的原理与应用,从数学模型到工程实践全面解析。内容涵盖嵌套循环的本质(如笛卡尔积实现、变量作用域)、精细控制技巧(如break/continue、迭代器协议、异常处理),以及性能优化策略(预计算、向量化等)。同时结合树形结构遍历、动态规划、游戏开发等典型场景,提供最佳实践建议。掌握这些技巧,助你突破编程瓶颈,实现复杂问题的优雅解决。
                                                                                                                                                        269 6
                                                                                                                                                        |
                                                                                                                                                        8月前
                                                                                                                                                        |
                                                                                                                                                        Python 容器
                                                                                                                                                        [oeasy]python090_列表_构造_范围_range_start_end_step_步长
                                                                                                                                                        本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
                                                                                                                                                        292 12
                                                                                                                                                        |
                                                                                                                                                        8月前
                                                                                                                                                        |
                                                                                                                                                        索引 Python
                                                                                                                                                        [oeasy]python092_eval_衡量_转化为列表
                                                                                                                                                        本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
                                                                                                                                                        199 2
                                                                                                                                                        |
                                                                                                                                                        8月前
                                                                                                                                                        |
                                                                                                                                                        存储 Shell 开发者
                                                                                                                                                        Python用户输入与While循环
                                                                                                                                                        本文介绍了Python中用户输入与while循环的结合使用,通过`input()`函数获取用户输入,并利用while循环实现重复操作,如创建交互式程序或用户驱动的循环。示例代码展示了如何让用户输入数字并计算总和,直到输入指定退出命令。这种组合能帮助开发者构建强大的交互式Python应用。
                                                                                                                                                        257 1
                                                                                                                                                        |
                                                                                                                                                        网络协议 Shell Linux
                                                                                                                                                        【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
                                                                                                                                                        【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
                                                                                                                                                        194 0
                                                                                                                                                        |
                                                                                                                                                        Java Shell Linux
                                                                                                                                                        【Linux】shell编程基础(超详细,入门看这一篇就够了)(上)
                                                                                                                                                        【Linux】shell编程基础(超详细,入门看这一篇就够了)
                                                                                                                                                        1175 0

                                                                                                                                                        推荐镜像

                                                                                                                                                        更多