欢迎光临散文网 会员登陆 & 注册

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

2022-12-29 20:50 作者:oeasy  | 我要投稿

整合shell编程

回忆上次内容

  • \r

    • 可以让输出位置回到行首

    • 原位刷新时间

  • 如果想要的是大字符效果

    • 需要使用 figlet

    • 但同时还希望能刷新

  • 这可能吗?🤔

建立脚本

  • 我们得熟悉一下shell

  • 先新建一个test.sh

    • vi test.sh

python3 show_time.py python3 show_time.py python3 show_time.py

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

  • 可以执行么?

尝试执行

  • 注意执行细节

  • 在vim的正常状态用:w|!sh %执行

    • 注意这里使用的外部程序不是python

    • 而是sh

    • sh 就像 python3 是外部命令名

    • % 代指test.sh

    • 就像以前的sleep.py

    • 是文件名

    • :w 保存

    • | 并且执行

    • !sh % 用外部命令sh执行这个test.sh

  • 确实输出了三次时间

  • 但我还想把字变大怎么办呢?

figlet变大

  • show_time.py 的输出字符串

    • 直接通过 管道| 给到 figlet

  • 其中

    • 负责变大

    • 通过管道|figlet

    • 只负责输出时间

    • show_time.py程序

    • 输出的结果

    • figlet

  • 如果想要输出三个变大之后的时间

  • 应该如何呢?

三次输出

  • 修改test.sh

    • vi test.sh

    • 编写以下文件

python3 show_time.py | figlet python3 show_time.py | figlet python3 show_time.py | figlet

  • 尝试运行

  • 运行结果

  • 确实变大了

    • 而且输出了三次

  • 现在需要不只输出三次

    • 而是无限多次不断刷新

    • 应该怎么办呢?

尝试循环

  • 无限多次肯定需要循环!

  • 原来放在 python文件 中的的循环和定时功能

    • 现在都需要放在 sh脚本 文件里

    • shell 来控制延迟的节奏

  • 那问题来了

    • sh脚本文件 如何进行循环?

搜索一下!

  • 尝试根据这个修改

shell循环

  • 在shell中

    • 新编辑一个loop.sh

    • vi loop.sh

  • 输入以下内容

for a in {1..10}do    echo $adone

  • 尝试运行此文件

保存并运行

  • :w 保存当前文档

  • :!sh %运行当前shell

  • :w|!sh %保存并运行当前shell

  • 执行的结果如下

  • 成功循环了起来

  • 光是循环还不够

    • 还需要延迟

  • 怎么办?

搜索延迟

for a in {1..10}do    echo $a    sleep 1sdone

  • :w|!sh %

    • 保存并运行当前 shell

  • 延迟成功

    • 接下来需要输出时间了

    • 而且是通过管道给  figlet 的大时间

整合 python

  • 把原来数字的部分换成执行命令

    • python3 show_time.py | figlet

for a in {1..10}do    python3 show_time.py | figlet    sleep 1sdone

  • 输出成功

    • 确实可以刷新

    • 但是一屏幕上

    • 有两个时间

  • 很乱!

  • 我想只要一个!

    • 少则得多则惑!

  • 可以清一下屏幕么?

尝试清屏

for a in {1..10}do    clear    python3 sleep.py | figlet    sleep 1sdone

  • 先去总结一下

总结

  • 这次我们研究了shell脚本的编程

  • 并且在shell中实现了

    • 循环语句

    • 延迟命令

    • 清屏命令

    • python命令

    • figlet命令

  • 还能整点什么呢?🤔

  • 下次再说👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy


[oeasy]python0035_ 整合shell编程_循环_延迟_清屏的评论 (共 条)

分享到微博请遵守国家法律